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

第一个win32程序

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

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

WinCE下的远程控制

WinCE下的远程控制…

stdcall cdecl fastcall thiscall naked call

在C语言中,假设我们有这样的一个函数:int function(int a,int b)调用时只要用result = function(1,2)这样的方式就可以使用这个函数。但是,当高级语言被编译成计算机可…

linux 常用命令

作者:北南南北来自:LinuxSir.Org摘要:Linux 命令行模式下来操作文件管理还是比较重要的,虽然目前在Linux桌面上能完成大部份的文件管理工作,但就效率来说,还是命令行模式更为强大。最重要的是在文本操作界面和图形界面通用。如果您是服务器管理人员,您能体会到命令行下的文件管理工具是何等重…

主流 AI 代码助手功能分析(2026年3月)

 一、市场概览AI 代码助手已从"补全工具"进化为"编程代理",核心趋势:从补全到 Agent:能自主完成完整功能、跑测试、提交 PRIDE 深度整合:Cursor、Windsurf 直接 fork VSCode多模型路由:GPT-4o、Claude…

Android 修改Bitmap 图片像素的信息 R G B 颜色值 详解

要想修改Bitmap图片的 R G B信息 首先 得先拿到这张图片每个点的Color值 然后根据这个Color值 就可以算出对应的R G B 值 我们都知道在计算机语言中在内存中加载一张图片实际上是把图片的每个点的RGB信息写入内存 如果动态的修改了这些颜色信息 那绘制出来的图片就会改变。修…

nutch应用

    Nutch是一个基于Lucene,类似Google的完整网络搜索引擎解决方案,基于Hadoop的分布式处理模型保证了系统的性能,类似Eclipse的插件机制保证了系统的可客户化,而且很容易集成到自己的应用之中。    Nutch 0…

发表评论

访客

看不清,换一张

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