c语言class运行错误,win32 C RegisterClass失败,该如何处理

"本文介绍了在学习Win32编程过程中遇到的`Win32CRegisterClass`失败的问题。通过检查代码发现,WNDCLASS结构体没有正确初始化,修正为WNDCLASS wndcls = {}
摘要由CSDN通过智能技术生成

win32 C RegisterClass失败

刚学win32没多久,,按书上的代码打了一遍,,,.

也没找到相关的资料..

很普通的代码:

#include 

#include 

#include 

LRESULT CALLBACKWinSunProc(

HWND hwnd,UINT uMsg,WPARAM wparam,LPARAM lparam

);

int WINAPI WinMain(

HINSTANCE hinstance,

HINSTANCE hprevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

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=WinSunProc;

wndcls.lpszClassName=_T("lihui");

wndcls.lpszClassName=NULL;

wndcls.style=CS_HREDRAW | CS_VREDRAW;

if(!RegisterClass(&wndcls))

return 0;

HWND hwnd;

hwnd=CreateWindow(_T("lihui"),_T("frank"),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 msg.wParam;

}

LRESULT CALLBACK WinSunProc(

HWND hwnd,

UINT uMsg,

WPARAM wparam,

LPARAM lparam )

{

switch(uMsg)

{

case WM_CHAR:

char szChar[20];

sprintf(szChar,"char code is %d",wparam);

MessageBoxA(hwnd,szChar,"char",0);

break;

case WM_LBUTTONDOWN:

MessageBoxA(hwnd,"mouse clicked","message",0);

HDC hdc;

hdc=GetDC(hwnd);

TextOut(hdc,0,50,_T("frank"),strlen("frank"));

case WM_PAINT:

HDC hDC;

PAINTSTRUCT ps;

hDC=BeginPaint(hwnd,&ps);

TextOut(hDC,0,0,_T("www.myangguang.com"),strlen("www.myangguang.com"));

EndPaint(hwnd,&ps);

break;

case WM_CLOSE:

if(IDYES==MessageBoxA(hwnd,"ÊÇ·ñÕæµÄ½áÊø£¿","message",MB_YESNO))

{

DestroyWindow(hwnd);

}

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hwnd,uMsg,wparam,lparam);

}

return 0;

}

------解决方案--------------------

WNDCLASS wndcls;改成

WNDCLASS wndcls = {};

不然你那样的代码,这wndcls里面好几个成员都是无效值。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值