Bonjour,
je cherche à réceptionner des arguments envoyé via ligne de commande en VC ,
les sources du sdk sont ici : https://www.xp-pen.fr/developer
j'envoie en ligne de commande des paramètres depuis un autre logiciel ( fait en windev ) , il faut donc que je réceptionne cette ligne de commande pour modifier certain paramètre , en C avec une fonction main() exe console ou dll , ok , mais la c'est plus compliqué ( pour moi lol ).
voila le début de PadSignatureDlg.cpp
et l'entier PadSignature.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 // PadSignatureDlg.cpp : implementation file // #include "stdafx.h" #include "PadSignature.h" #include "PadSignatureDlg.h" #include "afxdialogex.h" #include <list> using namespace std; #ifdef _DEBUG //#define new DEBUG_NEW #endif #include <stdlib.h> // CPadSignatureDlg dialog CPadSignatureDlg * g_lpPadSignatureDlg = nullptr; list<DATAPACKET > g_listData; HANDLE g_eventData = ::CreateEvent(NULL, TRUE, TRUE, NULL); CString RSA_PRIV_KEY; int GetEncoderClsid(const WCHAR* format, CLSID* pClsid); CPadSignatureDlg::CPadSignatureDlg(CWnd* pParent /*=NULL*/) : CDialogEx(IDD_PADSIGNATURE_DIALOG, pParent) { m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } using namespace std; void CPadSignatureDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_STATIC_SIGN, m_Static_Sign); DDX_Control(pDX, IDC_MFCCOLORBUTTON1, m_Btn_PenColor); DDX_Control(pDX, IDC_EDIT_MAX_WIDTH, m_Edit_PenWidth); DDX_Control(pDX, IDC_BTN_OPEN, m_Btn_OpenDevice); } BEGIN_MESSAGE_MAP(CPadSignatureDlg, CDialogEx) ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_BTN_SAVE, &CPadSignatureDlg::OnBnClickedBtnSave) ON_BN_CLICKED(IDC_BTN_CLEAR, &CPadSignatureDlg::OnBnClickedBtnClear) ON_BN_CLICKED(IDC_BTN_OPEN, &CPadSignatureDlg::OnBnClickedBtnOpen) ON_WM_DESTROY() ON_MESSAGE(WM_SIGN_DATA, &CPadSignatureDlg::OnSignData) ON_MESSAGE(WM_SIGN_NOTIFY, &CPadSignatureDlg::OnSignNotify) ON_BN_CLICKED(IDC_MFCCOLORBUTTON1, &CPadSignatureDlg::OnBnClickedMfccolorbutton1) ON_EN_CHANGE(IDC_EDIT_MAX_WIDTH, &CPadSignatureDlg::OnEnChangeEditMaxWidth) ON_BN_CLICKED(IDC_CHECK1, &CPadSignatureDlg::OnBnClickedCheck1) ON_BN_CLICKED(IDC_CHECK2, &CPadSignatureDlg::OnBnClickedCheck2) ON_BN_CLICKED(IDC_CHECK3, &CPadSignatureDlg::OnBnClickedCheck3) ON_BN_CLICKED(IDC_CHECK4, &CPadSignatureDlg::OnBnClickedCheck4) ON_STN_CLICKED(IDC_STATIC_SIGN, &CPadSignatureDlg::OnStnClickedStaticSign) END_MESSAGE_MAP() using namespace std; // CPadSignatureDlg message handlers CPadSignatureDlg::~CPadSignatureDlg() { if (m_MemDC.GetSafeHdc()) { m_MemBitmap.DeleteObject(); m_MemDC.DeleteDC(); } } BOOL CPadSignatureDlg::OnInitDialog() { //int argc = 1; //LPSTR* argv; //LPSTR lignedecommande = GetCommandLine(); //argv = CommandLineToArgvW(lignedecommande, &argc); CDialogEx::OnInitDialog(); // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon GdiplusStartupInput startupInput; GdiplusStartup(&m_gidpToken, &startupInput, NULL); m_HandleDataProc = 0; m_HandleNotifyProc = 0; g_lpPadSignatureDlg = this; // m_lpBitmapBuffer = nullptr; m_Edit_PenWidth.SetWindowText(RSA_PRIV_KEY); m_PenColor = m_Btn_PenColor.GetColor(); m_MaxWidth = 2; OnEnChangeEditMaxWidth(); signInitialize(); CWnd *pWnd = GetDlgItem(IDC_STATIC_SIGN);//²ÎÊýΪ¿Ø¼þID pWnd->GetClientRect(&m_PicRec);//rcΪ¿Ø¼þµÄ´óС¡£ m_Rote = false; CRect rect; m_Static_Sign.GetClientRect(rect); if (!m_MemDC.GetSafeHdc()/*m_lpBitmapBuffer == nullptr*/) { CClientDC dc(this); m_MemDC.CreateCompatibleDC(&dc); m_MemBitmap.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height()); m_MemDC.SelectObject(&m_MemBitmap); Gdiplus::Graphics g(m_MemDC.GetSafeHdc()); g.Clear(Gdiplus::Color(0x00, 0xff, 0xff, 0xff)); m_MemDC.FillSolidRect(rect, RGB(0xff, 0xff, 0xff)); } ((CButton *)GetDlgItem(IDC_CHECK1))->SetCheck(true); CPadSignatureDlg::OnBnClickedBtnOpen(); return TRUE; // return TRUE unless you set the focus to a control }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106 // PadSignature.cpp : Defines the class behaviors for the application. // #include "stdafx.h" #include "PadSignature.h" #include "PadSignatureDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CPadSignatureApp BEGIN_MESSAGE_MAP(CPadSignatureApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CPadSignatureApp construction CPadSignatureApp::CPadSignatureApp() { // support Restart Manager m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: add construction code here, // Place all significant initialization in InitInstance } // The one and only CPadSignatureApp object CPadSignatureApp theApp; // CPadSignatureApp initialization BOOL CPadSignatureApp::InitInstance() { // InitCommonControlsEx() is required on Windows XP if an application // manifest specifies use of ComCtl32.dll version 6 or later to enable // visual styles. Otherwise, any window creation will fail. INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // Set this to include all the common control classes you want to use // in your application. InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); AfxEnableControlContainer(); // Create the shell manager, in case the dialog contains // any shell tree view or shell list view controls. CShellManager *pShellManager = new CShellManager; // Activate "Windows Native" visual manager for enabling themes in MFC controls CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); // Standard initialization // If you are not using these features and wish to reduce the size // of your final executable, you should remove from the following // the specific initialization routines you do not need // Change the registry key under which our settings are stored // TODO: You should modify this string to be something appropriate // such as the name of your company or organization SetRegistryKey(_T("Local AppWizard-Generated Applications")); CPadSignatureDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } else if (nResponse == -1) { TRACE(traceAppMsg, 0, "Warning: dialog creation failed, so application is terminating unexpectedly.\n"); TRACE(traceAppMsg, 0, "Warning: if you are using MFC controls on the dialog, you cannot #define _AFX_NO_MFC_CONTROLS_IN_DIALOGS.\n"); } // Delete the shell manager created above. if (pShellManager != NULL) { delete pShellManager; } #ifndef _AFXDLL ControlBarCleanUp(); #endif // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application's message pump. return FALSE; }
Partager