刚开始看《WINDOWS核心编程5》,看到 HWND hwnd = FindWindow(TEXT("#32770"), TEXT("Error Show"))。知道是在找窗口名"Error Show",但不知"#32770"从何而来。查找才知道,这是一个MFC自动为基于对话框的程序产生的默认窗口类 ,所有的基于MFC所产生的对话框程序都使用这一个默认类名。即是说,在使用一个基于对话框的程序时,无论多少个对话框产生,它们的类名都会是 "#32770(Dialog)"。
解决办法:
假定 class name是"class123"
1.用code view打开.rc文件
加入 CLASS "class123"
EXSTYLE WS_EX_APPWINDOW
CAPTION "TimeingKiller"
CLASS "class123"
FONT 9, "MS Shell Dlg", 0, 0, 0x1
BEGIN
2.在InitInstance里设置 class name
BOOL CTimeingKillerApp::InitInstance()
{
WNDCLASS wc;
::GetClassInfo(AfxGetInstanceHandle(),"#32770",&wc);
wc.lpszClassName = "class123";
AfxRegisterClass(&wc);
......