CreateWindow()函数的用法

//#include <Windows.h>
//void registerMyWndclass(HINSTANCE hInstance);
//LRESULT CALLBACK winProc(HWND hWnd,UINT msg,WPARAM wParam, LPARAM lParam);
//
//int APIENTRY WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
//{
// registerMyWndclass(hInstance);
// HWND hWnd=CreateWindow("YW","mywindow",WS_OVERLAPPEDWINDOW,100,100,640,480,NULL,NULL,hInstance,NULL);
// if(hWnd)
// {
//  ShowWindow(hWnd,SW_NORMAL);
//  UpdateWindow(hWnd);
// }
// MSG msg;
// while(GetMessage(&msg,NULL,0,0))
// {
//  TranslateMessage(&msg);
//  DispatchMessage(&msg);
// }
// return 0;
//}
//void registerMyWndclass(HINSTANCE hInstance)
//{
// WNDCLASSEX* wc=new WNDCLASSEX;
// wc->cbClsExtra=NULL;
// wc->cbSize=sizeof(WNDCLASSEX);
// wc->cbWndExtra=NULL;
// wc->hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
// wc->hCursor=LoadCursor(NULL,IDC_ARROW);
// wc->hIcon=LoadIcon(NULL,IDI_WINLOGO);
// wc->hIconSm=NULL;
// wc->hInstance=hInstance;
// wc->lpfnWndProc=winProc;
// wc->lpszMenuName=NULL;
// wc->lpszClassName="MYWINDOW";
// wc->style=CS_HREDRAW |CS_VREDRAW;
// RegisterClassEx(wc);
//}
//LRESULT CALLBACK winProc(HWND hWnd,UINT msg,WPARAM wParam, LPARAM lParam)
//{
// switch(msg)
// {
// case WM_DESTROY:
//  PostQuitMessage(0);
//  return 0;
//  ///...more case statement
//
// default:
//  break;
// }
// return  DefWindowProc(hWnd,msg,wParam,lParam);
//}

//#include "stdafx.h"
#include <windows.h>
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);


int APIENTRY WinMain(HINSTANCE hInstance, //应用程序的实例句柄,
      HINSTANCE hPrevInstance,
      LPSTR     lpCmdLine, //命令行
      int       nCmdShow) //显示方式
{
 MSG msg;
 HWND hWnd;
 char szTitle[]="系统信息";        // The title bar text
 char szWindowClass[]="popMsg";        // The title bar text
 WNDCLASSEX wcex={0};
 wcex.cbSize = sizeof(WNDCLASSEX);  //WNDCLASSEX结构体大小
 wcex.style   = CS_HREDRAW | CS_VREDRAW; //位置改变时重绘
 wcex.lpfnWndProc = (WNDPROC)WndProc;   //消息处理函数
 wcex.hInstance  = 0;   //当前实例句柄
 wcex.hbrBackground = (HBRUSH)COLOR_WINDOWFRAME; //背景色
 wcex.lpszClassName = szWindowClass;  //参窗口类名
 wcex.hIcon   =0;  //图标
 wcex.hCursor  =LoadCursor(NULL, IDC_ARROW);  //光标
 wcex.lpszMenuName =0;  //菜单名称
 wcex.hIconSm  =0;  //最小化图标
 RegisterClassEx(&wcex);   //注册窗口类

 hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU|WS_VISIBLE, //创建窗口
  CW_USEDEFAULT,CW_USEDEFAULT, 640, 480, NULL, NULL, 0, NULL);
 if (!hWnd){
  return FALSE;
 }

 ShowWindow(hWnd, nCmdShow);
 UpdateWindow(hWnd);

 while (GetMessage(&msg, NULL, 0, 0))  // 消息循环:
 {
  TranslateMessage(&msg);  //转化虚拟按键到字符消息
  DispatchMessage(&msg);  //分派消息调用回调函数
 }
 return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
 PAINTSTRUCT ps;
 HDC hdc;
 RECT rect;
 switch (message)
 { 
 case WM_PAINT:  //重绘消息
  hdc = BeginPaint(hWnd, &ps);
  GetClientRect(hWnd, &rect);
  MoveToEx(hdc,10,10,0);
  SelectObject( hdc,::CreatePen(PS_SOLID,1,RGB(0,0,255)));
  LineTo(hdc,300,200);
  Rectangle(hdc,150,150,400,400);
  //   DrawText(hdc, szHello, strlen(szHello), &rt, DT_CENTER);
  EndPaint(hWnd, &ps);
  break;

 case WM_CREATE:

  RegisterHotKey(hWnd ,1, 0 ,0x41 );
  break;
 case WM_HOTKEY:
  MessageBox(0,0,0,0);
  break;
 case WM_TIMER:


  break;
 case WM_DESTROY: //窗口销毁消息
  PostQuitMessage(0);
  break;
 default:
  return DefWindowProc(hWnd, message, wParam, lParam);
 }
 return 0;
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值