2 senorjian senorjian 于 2014.05.23 17:45 提问

孙鑫的第一个程序,为什么 调试没有错误,运行后却什么也没有啊?

#include
#include
LRESULT CALLBACK WinsunProc(
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_ARROW);
wndcls.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndcls.hInstance=hInstance;
wndcls.lpfnWndProc=WinsunProc;
wndcls.lpszClassName="zhenjing";
wndcls.lpszMenuName=NULL;
wndcls.style=CS_HREDRAW|CS_VREDRAW;
RegisterClass(&wndcls);

HWND hwnd;
hwnd=CreateWindow("weixin2013","甄嬛传",WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,SW_SHOWNORMAL);
UpdateWindow(hwnd);

MSG msg;

while(GetMessage(&msg,NULL,0,0))
{

        TranslateMessage(&msg);
        DispatchMessage(&msg);


}
return 0;

}
LRESULT CALLBACK WinsunProc(
HWND hwnd, // handle to window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
)
{
switch(uMsg)
{
case WM_CHAR:
char szChar[20];
sprintf(szChar,"char code is %d",wParam);
MessageBox(hwnd,szChar,"char",0);
break;
case WM_LBUTTONDOWN:
MessageBox(hwnd,"mouse clicked","message",0);
HDC hdc;
hdc=GetDC(hwnd);
TextOut(hdc,0,50,"三只小熊",strlen("三只小熊"));
ReleaseDC(hwnd,hdc);
break;
case WM_PAINT:
HDC hDC;
PAINTSTRUCT ps;
hDC=BeginPaint(hwnd,&ps);
TextOut(hDC,0,0,"甄嬛传",strlen("甄嬛传"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE:
if(IDYES==MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))
{
DestroyWindow(hwnd);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}

1个回答

lym753024200
lym753024200   2014.05.23 18:22

运行后安鼠标左键或者键盘任意字符试试

lym753024200
lym753024200 花时间给LZ解决问题,可是LZ一不回复,二不给分,太那个了,以后都这样,谁还敢来解决问题。。。
3 年多之前 回复
lym753024200
lym753024200 楼主结下贴吧,要不这一个月我就被结了一次,真苦逼!
3 年多之前 回复
senorjian
senorjian 真二了,呵呵 真的就是这个原因,太感谢了
3 年多之前 回复
lym753024200
lym753024200 算了,给你调试了下,问题出来了,开始以为是UNICODE标识符导致宽字符问题所致。这时候发现时你的CreateWindow的第一个参数,也就是类名,你不是用的WNDCLASS结构中的类名,估计你自己改了,现在改回"zhenjing"就行了,应该是你的名字吧,呵呵!
3 年多之前 回复
lym753024200
lym753024200 那你应该不是在VC 6.0上测试的
3 年多之前 回复
senorjian
senorjian 通过了,没错误,运行就是不显示窗口,进程里能看到
3 年多之前 回复
lym753024200
lym753024200 编译和链接通过没有?
3 年多之前 回复
senorjian
senorjian 没用啊
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片