-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCDLG.H
36 lines (31 loc) · 887 Bytes
/
CDLG.H
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
/*######################################################################
// class CMDialog
// ƒ_ƒCƒAƒƒO
######################################################################*/
class CMDialog
{
public:
CMDialog(void);
int OpenRes(HINSTANCE hInstance,WORD ResID,HWND hWndParent);
virtual LRESULT CALLBACK DlgProc(HWND hwnd,UINT uMsg,WPARAM wP,LPARAM lP);
HWND GetHandle(void){return mHwnd;}
private:
void SetHandle(HWND hwnd){
mHwnd = hwnd;
}
static DLGPROC DlgProcD(HWND hwnd,UINT uMsg,WPARAM wP,LPARAM lP){
CMDialog *cmdlg = (CMDialog *)::GetWindowLong( hwnd, GWL_USERDATA );
if (cmdlg == NULL) {
if(uMsg==WM_INITDIALOG) {
cmdlg=(CMDialog *)lP;
::SetWindowLong( hwnd, GWL_USERDATA, (LONG)cmdlg );
cmdlg->SetHandle(hwnd);
cmdlg->DlgProc(hwnd,uMsg,wP,lP);
}
}else{
cmdlg->DlgProc(hwnd,uMsg,wP,lP);
}
return FALSE;
}
HWND mHwnd;
};