| 
 | 
 
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 根本不是容器控件嘛。 
 
 
 
 
 
 
 |