C语言创建windows窗口实例


耐得住寂寞,禁得起诱惑,这就是程序人生

步骤:
1.在WinMain中定义各种变量
2.注册窗口类RegisterClass
3.创建窗口CreateWindow
4.显示窗口和更新窗口

复制代码 代码如下:

ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow (hwnd) ;

5.消息循环
复制代码 代码如下:

while (GetMessage (&msg, NULL, 0, 0))
     {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
     }

完整代码:
复制代码 代码如下:

#include <windows.h> 
 
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam); 
 
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd ) 

     MSG      msg; 
     HWND     hwnd; 
     static TCHAR szAppName[] = "hl"; 
 
     WNDCLASS wndclass; 
     wndclass.style        = CS_HREDRAW | CS_VREDRAW; 
     wndclass.cbClsExtra   = 0; 
     wndclass.cbWndExtra   = 0; 
     wndclass.lpfnWndProc  = MyProc; 
     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("error"),TEXT("title"),MB_ICONERROR); 
          return 0; 
     } 
     hwnd = CreateWindow(szAppName, 
                              TEXT("Hello"), 
                              WS_OVERLAPPEDWINDOW, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              CW_USEDEFAULT, 
                              NULL, 
                              NULL, 
                              hInstance, 
                              NULL 
                              ); 
     ShowWindow(hwnd,nShowCmd); 
     UpdateWindow(hwnd); 
 
     while(GetMessage(&msg,hwnd,0,0)) 
     { 
          TranslateMessage(&msg); 
          DispatchMessage(&msg); 
     } 
     return msg.wParam; 

 
LRESULT CALLBACK MyProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) 

 
     switch(message) 
     { 
     case WM_DESTROY: 
          PostQuitMessage(0); 
          return 0; 
     } 
     return DefWindowProc(hwnd,message,wParam,lParam); 



相关阅读:
jQuery中的Deferred和promise 的区别
Apache服务器优化方法小结
java使用OGEngine开发2048
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
ajax内部值外部调用不了的原因及解决方法
Java并发编程示例(七):守护线程的创建和运行
Ajax 给 XMLHttpReq.onreadystatechange传递参数
JS组件Bootstrap实现图片轮播效果
ios动态设置lbl文字标签的高度
win8系统突然出现应用闪退和无法访问指定设备怎么办?
jquery和雅虎的yql服务实现天气预报服务示例
A07_TimePicker & DatePicker & AnalogClock & DigitalClock 的设置小结
JS实现alert中显示换行的方法
关于Chrome浏览器字体显示的太小不一的bug处理
快速导航

Copyright © 2016 phpStudy |