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

第一个win32程序

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

#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程序” 的相关文章

[转]Unity琐碎(3) UGUI 图文混排解决方案和优化

 感觉使用Unity之后总能看到各种各样解决混排的方案,只能说明Unity不够体恤下情啊。这篇文章主要讲一下个人在使用过程中方案选择和优化过程,已做记录。顺便提下,开源很多意味着坑,还是要开实际需求。1. 方案选择1 TextMeshProUnity 最近公布收购了TextMeshPro并…

总结:用OleObject嵌入flash ocx

用OleObject嵌入flash ocx总结 用了好几天的时间,从从未接触com到知道用oleobject嵌入 flash ocx的过程。应该要注意下面几点: 1.实现ole 接口 2.用#import 加载 flash ocx ...…

Android代码结构深入剖析

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

iOS的多核编程和内存管理

这次的文章集中与iOS的多核编程和内存管理,为什么?因为iPad 2已经是双核CPU了!虽然iPad 1的应用已经不慢了,但大家完全可以使用苹果的多核编程框架来写出更加responsive的应用。多核运算在iOS中concurrency编程的框架就是GCD(Grand Central Dispatc…

发表评论

访客

看不清,换一张

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