有时我们的MFC工程会像SDK那样,注册一个类名。这样别人的可以通过findwindow找到我们的句柄,尤其是我的MFC工程中不需要显示标题栏时。
1.首先打开工程中的.rc文件 ,找到我们的主对话框,其实在整个工程搜索对话框的ID即可,(我的ID为IDD_D03SHOWHITS_DIALOG )就可以找到类似如下的内容
IDD_D03SHOWHITS_DIALOG DIALOGEX 0, 0, 52, 68
STYLE DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_BORDER
CLASS "CD03ShowHITSDlg"
FONT 14, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN
LTEXT "Ready:",IDC_STATIC_READY,0,0,52,8
LTEXT "Time:",IDC_STATIC_TIME,0,9,52,8
LTEXT "First:",IDC_STATIC_FIRST,0,22,52,8
LTEXT "20S:",IDC_STATIC_20S,0,31,52,8
LTEXT "Total:",IDC_STATIC_TOTAL,0,39,52,8
LTEXT "Grade:",IDC_STATIC_GRADE,0,47,52,8
PUSHBUTTON "More",IDC_BUTTON_MORE,8,14,29,9,BS_BITMAP | BS_LEFT | NOT WS_VISIBLE
CTEXT "More",IDC_STATIC_MORE,0,57,52,8,SS_NOTIFY
END
加上红色部分内容就可以了,接下来我们还需要注册
找到InitInstance函数,加入下面几行代码就行了。
WNDCLASS wc;
//Get the info for this class. // #32770 is the default class name for dialogs boxes.
::GetClassInfo(AfxGetInstanceHandle(), "#32770", &wc);
// Change the name of the class.
wc.lpszClassName = "CD03ShowHITSDlg";
AfxRegisterClass(&wc);
然后别人就可以用FindWindow("CD03ShowHITSDlg",NULL);就可以找到我们的句柄了。