C语言 百分网手机站

C语言怎样创建windows窗口

时间:2020-11-21 17:26:19 C语言 我要投稿

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

  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);

  }