|
1鱼币
想创建一个静态控件,创静后看不见,窗口分析已经创建成功了,而且我只想创建一个,结果好像循环创建了很多个
请问是为什么啊
- #include<windows.h>
- LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
- HINSTANCE hInst;
- int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
- PSTR szCmdline,int iCmdShow)
- {
- static TCHAR szAppName[]=TEXT("Static");
- HWND hwnd;
- MSG msg;
- WNDCLASS wndclass;
- hInst=hInstance;
- wndclass.style =CS_HREDRAW|CS_VREDRAW;
- wndclass.lpfnWndProc =WndProc;
- wndclass.cbClsExtra =0;
- wndclass.cbWndExtra =0;
- wndclass.hInstance =hInstance;
- wndclass.hIcon =::LoadIcon(NULL,IDI_APPLICATION);
- wndclass.hCursor =::LoadCursor(NULL,IDC_ARROW);
- wndclass.hbrBackground =(HBRUSH)::GetStockObject(WHITE_BRUSH);
- wndclass.lpszMenuName =NULL;
- wndclass.lpszClassName =szAppName;
- if(!::RegisterClass(&wndclass))
- {
- ::MessageBox(NULL,TEXT("Program requires Windows NT!"),
- szAppName,MB_ICONERROR);
- return 0;
- }
- hwnd=::CreateWindow(szAppName,
- TEXT("Static"),
- WS_OVERLAPPEDWINDOW|WS_VISIBLE,
- CW_USEDEFAULT,CW_USEDEFAULT,
- CW_USEDEFAULT,CW_USEDEFAULT,
- NULL,NULL,hInstance,NULL
- );
- //::ShowWindow(hwnd,iCmdShow);
- ::UpdateWindow(hwnd);
- while(::GetMessage(&msg,NULL,0,0))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- //msg.wParam=0;
- }
- return msg.wParam;
- }
- LRESULT CALLBACK WndProc(HWND hwnd ,UINT message,WPARAM wParam,LPARAM lParam)
- {
- static HWND hwndSmaller;
- static int cxClient,cyClient,cxChar,cyChar;
- switch(message)
- {
- case WM_CREATE:
- {
- cxChar=LOWORD(::GetDialogBaseUnits());
- cyChar=HIWORD(::GetDialogBaseUnits());
- hwndSmaller=::CreateWindow(TEXT("static"),TEXT("静态控件"),
- WS_CHILD|WS_VISIBLE|SS_BLACKRECT,
- 0,0,100,100,
- hwnd,(HMENU)1,hInst,NULL);
- return 0;
- }
- case WM_DESTROY:
- {
- ::PostQuitMessage(0);
- return 0;
- }
- }
- return ::DefWindowProc(hwnd,message,wParam,lParam);
- }
复制代码
|
最佳答案
查看完整内容
static TCHAR szAppName[]=TEXT("Static");
注册窗口类的时候,类名添这个干啥。。。换个,
Static 这个是标签什么的类名。。。
换成 MyWindow 什么的都可以,别是系统已经注册过的。
再说了,Static 根本不是容器控件嘛。
|