建窗体的代码为什么不好使?

来源:百度知道 编辑:UC知道 时间:2024/05/09 05:28:21
#include <windows.h>
#include <stdio.h>

LRESULT CALLBACK WindowProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);

int WINAPI WinMain(
HINSTANCE hInstance, // handle to current instance
HINSTANCE hPrevInstance, // handle to previous instance
LPSTR lpCmdLine, // command line
int nCmdShow // show state
)
{
WNDCLASS wndcls;
wndcls.cbClsExtra=0;
wndcls.cbWndExtra=0;
wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);
wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WindowProc;
wndcls.lpszClassName="MyWindow";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW | CS_VREDRAW;
R

问题出在传给WNDCLASS的窗口处理函数WindowProc上;调用CreateWindow时,CreateWindow会调用一次WindowProc,并且要求WindowProc返回TRUE,而你却返回了0.
所以只要去掉case里的default项,再将 return 0;改成
retutn DefWindowProc(hwnd,uMsg,wParam,lParam);
就可以了

建议新手学习先使用新建向导生成 "MFC对话框" 工程.