当前位置:首页 > 编程开发

第一个win32程序

webgou17年前 (2009-10-30)编程开发152

#include "Windows.h"

LRESULT CALLBACK MainWndProc(HWND, UINT, WPARAM, LPARAM);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstatnce, LPSTR lpstrCmdLine, int nCmdShow = SW_SHOW)
{
 MSG msg;
 WNDCLASS ws;
 ws.style = 0;
 ws.lpfnWndProc = (WNDPROC)MainWndProc;
 ws.cbClsExtra = 0;
 ws.cbWndExtra = 0;
 ws.hInstance = hInstance;
 ws.hIcon = LoadIcon(NULL, IDI_APPLICATION);
 ws.hCursor = LoadIcon(NULL, IDC_ARROW);
 ws.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
 ws.lpszClassName = L"my";
 ws.lpszMenuName = NULL;
 if(!RegisterClass(&ws))
  return FALSE;
 HWND hWndMain;
 hWndMain = CreateWindow(
  L"my",
  L"显示window",
  WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT, CW_USEDEFAULT,
  CW_USEDEFAULT, CW_USEDEFAULT,
  NULL,
  NULL,
  hInstance,
  NULL
  );
 if(!hWndMain)
  return FALSE;
 ShowWindow(hWndMain,nCmdShow);
 while(GetMessage(&msg, NULL, 0,0))
 {
  TranslateMessage(&msg);
  DispatchMessage(&msg);
 }
 return 0;
}

LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
 static HDC hDc;
 static LPPAINTSTRUCT pt;
 HICON ghIcon = NULL;
 HBITMAP ghbmMask = NULL;
 HBITMAP ghbmColor = NULL;
 RECT rt ={0,0,100,20};
 static HDC dc;
 HPEN hPen;
 static int i = -10;
 switch (uMsg)
 {
 case WM_PAINT:
  PAINTSTRUCT ps;
  HDC hdc;
  COLORREF crTxt, crBk;
  hDc = BeginPaint(hWnd, &ps);
  EndPaint(hWnd, &ps);
  break;
 case WM_ERASEBKGND:
   dc = ::GetDC(hWnd);
   ::FillRect(dc,&rt,(HBRUSH)::GetStockObject(BLACK_BRUSH));
   ::DrawText(dc,L"文字显示 ", -1, &rt, DT_VCENTER|DT_CENTER);
   ::ReleaseDC(hWnd,dc);
  break;
 case WM_LBUTTONDOWN:
  i += 10;
  rt.top += 3*i;
  rt.bottom = rt.top + 20;
  hPen=CreatePen(PS_INSIDEFRAME,1,RGB(0,255,255));

  dc = ::GetDC(hWnd);
  SelectObject(dc,hPen);
  ::DrawText(dc,L"文字显示 ", -1, &rt, DT_VCENTER|DT_CENTER);
  MoveToEx(dc,0,i, NULL);
  LineTo(dc,800,i);
  ::ReleaseDC(hWnd,dc);
  //MessageBox(NULL,L"OK",NULL,NULL);
  break;
 case WM_RBUTTONDOWN:
  //MessageBox(NULL,L"right OK",NULL,NULL);
  break;
 case WM_DESTROY:
  PostQuitMessage(0);break;
 default:
  return (DefWindowProc(hWnd, uMsg, wParam, lParam));
 }
 return 0;
}

扫描二维码推送至手机访问。

版权声明:本文由知了博客发布,如需转载请注明出处。

本文链接:https://www.webgou.info/?id=76

标签: vc
分享给朋友:

“第一个win32程序” 的相关文章

__declspec关键字详细用法

    __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式。其它的有关存储方式的修饰符如static与extern等是C和 C++语言的ANSI规范,而__declspec是一种扩展属性的定义。扩展属性语法简化并标准化了C和C++语言关于M…

Android代码结构深入剖析

当我们在对Android操作系统进行编程后,会产生一个结构严密的Android代码结构,那么大家可以从这篇文章中对这一结构进行详细的分析,以此为参考,来加深大家对这一操作系统的认识,方便大家今后的开发。Android编译完成后,将在根目录中生成一个out文件夹,所有生成的Android代码结构内容均…

windows 网络编程

    Windows网络编程…

射频卡工作原理

系统属于近耦合射频识别系统,主要由应答器、阅读器、通讯模块、人机接口等几部分组成。 应答器也称邻近卡PICC(Proximity Card),是射频识别系统真正的数据载体,即我们通常所说的卡片。应答器由耦合元件以及微电子芯片组成。在阅读器的响应范围之外,应答器处于无源状态。通常,应答器没有自己供…

80年后可以分为八大派,你属于哪一派呢?

看到下面对80后的分派,还是很有道理的. ...…

Foxyspider 1.3

FoxySpider…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。