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

第一个win32程序

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

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

任务和javac命令是相似,它编译两种类型

文章出自:http://xo-tobacoo.javaeye.com/blog/185019<javac>任务和javac命令是相似,它编译两种类型的java文件1)没有被编译的java文件2)曾经编译过,但是class文件版本和当前对应的java文件版本不匹配的java文件。1)jav…

理解EnterCriticalSection 临界区

保证只有一个线程访问一段代码…

linux下的tar打包命令示例及详解

[root@linux tmp]# tar -zxvf /tmp/etc.tar.gz etc/passwd ....…

rpm 用法简介

rpm可谓是Redhat公司的一大贡献,它使Linux的软件安装工作变得更加简单容易。 1. 安装: 我只需简单的一句话,就可以说完。执行:rpm ivh rpm软件包名rpm参数 参数说明-i 安装软件-t 测试安装,不是真的安装-p 显示安装进度-f 忽略任何错误-U 升级安装-v 检测套件是否…

软件会议思考

很多时候,也有很多想法,但过完之后也就没有.刚看到一篇关于危险职业的论断,提出收入大与出路窄很有道理. 今天,开会的主要主题有两个: 1.应对售后,编写提供给销售人员能定位程序异常的工具 2.后装车机市场,提高开发速度,破解协议任务的分解 关于工具,主要功能: 1.取得日志, 2.获取当前软件信…

阿里云ECS装docker+SS

 仅仅个人笔记记录下:首先主机选择ubuntu 14.04 64位的镜像,然后安装后apt-get update, apt-get -y upgrade。...…

发表评论

访客

看不清,换一张

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