1、定义字符串

  在资源新建String table,增加新字符串;

  (win32加载)

  TCHAR tcIDName[255]=_T("");
  LoadString(hInstance,IDS_NAME,tcIDName,255);

2、窗口居中

  在WM_CREATE消息中增加如下代码: 

int scrWidth,scrHeight;
RECT rect;
//获得屏幕尺寸
scrWidth = GetSystemMetrics(SM_CXSCREEN);
scrHeight = GetSystemMetrics(SM_CYSCREEN);
//取得窗口尺寸
GetWindowRect(hwnd,&rect);
//重新设置rect里的值
rect.left = (scrWidth-rect.right)/;
rect.top = (scrHeight-rect.bottom)/;
//移动窗口到指定的位置
SetWindowPos(hwnd,HWND_TOP,rect.left,rect.top,rect.right,rect.bottom,SWP_SHOWWINDOW);

3、TChar字符串格式化

TCHAR tcText[255] = _T("");

_stprintf(tcText,_T("数字为%d"),1111);

4、键盘字符捕捉

case WM_KEYDOWN:
switch (wParam)
{
case VK_CONTROL:break;
}
break;

注意:如果点击按钮之后,或者其他控件,焦点就会被夺走,此时则需要通过SetFocus函数重新设置该窗口焦点。

5、创建按钮步骤(创建控件的方法)

  (1)、定义资源ID,#define ID_BUTTON_CLOSE 100001

  (2)、在WM_COMMAND消息中,添加以下代码:     

    HWND hButton = CreateWindow(_T("button"),
    _T("退出"),//按钮上显示的字符
    WS_CHILD | WS_VISIBLE,
    50,100,70,30, //按钮在界面上出现的位置
    hwnd,(HMENU)ID_BUTTON_CLOSE, //设置按钮IDIDC_BUTTON_CONTINUE = 131自己定义ID
    ((LPCREATESTRUCT)lParam)->hInstance,NULL);

  (3)、在WM_CREATE消息中处理对子控件的点击处理

    WORD wID = LOWORD(wParam);
    WORD wEvent = HIWORD(wParam);
    switch(wID)
    {
      case ID_BUTTON_CLOSE:
      PostQuitMessage(0);
      break;
    }

6、加载资源图标

  LoadIcon(hInstance,MAKEINTRESOURCE(IDI_ICON_APP));

7、绘制矩形并填充颜色

  HBRUSH hbrush = CreateSolidBrush (RGB());
  HBRUSH oldhBrush = (HBRUSH)SelectObject(hdc,hbrush);
  Rectangle(hdc,lx,ty,rx,by);
  SelectObject(hdc,oldhBrush);

  DeleteObject(hbrush);

 8、设置static文本背景颜色

case WM_CTLCOLORSTATIC:
{
if ((HWND)lParam == GetDlgItem(hwnd,ID_TEXT_SORCE))//获得指定标签句柄用来对比
{
SetTextColor((HDC)wParam,RGB(,,));//设置文本颜色
SetBkMode((HDC)wParam,TRANSPARENT);//设置背景透明
}
return (INT_PTR)GetStockObject((NULL_BRUSH));//返回一个空画刷(必须)
}
break;

9、设置win32窗口一直在最上面

  SetWindowPos函数第二个参数设置为HWND_TOPMOST;

10、获得透明画刷

  HBRUSH hBrush = (HBRUSH)GetStockObject(NULL_BRUSH);

  其返回的是一个标识,所以不需要delete或者release。

11、在win32中使用GDI+

  1、头文件中加入以下内容,宏可以改变

#ifndef   AFXSTD_H
#define AFXSTD_H
#include <comdef.h>
#include <Windows.h> // must be inluded before gdiplus.h, otherwise compile error
#include <gdiplus.h>
#pragma comment(lib, "gdiplus.lib")
#endif

  2、定义变量  ULONG_PTR m_gdiplusToken;

  3、初始化

Gdiplus::GdiplusStartupInput gdiplusStartupInput;
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiplusStartupInput, NULL);

  4、使用(根据具体情况而定)

PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd,&ps);
Gdiplus::Graphics graphics(hdc);
Gdiplus::Pen myPen(Gdiplus::Color(,,,),);
graphics.DrawEllipse(&myPen,,,,);
graphics.DrawLine(&myPen, , , , );
EndPaint(hwnd,&ps);

  5、释放GDI+  Gdiplus::GdiplusShutdown(m_gdiplusToken);

Win32基础知识整理的更多相关文章

  1. Kali Linux渗透基础知识整理(四):维持访问

    Kali Linux渗透基础知识整理系列文章回顾 维持访问 在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限.使用木马程序.后门程序和rootkit来达到这一目的.维持访问是一种艺术形式 ...

  2. Kali Linux渗透基础知识整理(二)漏洞扫描

    Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...

  3. 【OGG】OGG基础知识整理

    [OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...

  4. java部分基础知识整理----百度脑图版

    近期发现,通过百度脑图可以很好的归纳总结和整理知识点,本着学习和复习的目的,梳理了一下java部分的知识点,不定期更新,若有不恰之处,请指正,谢谢! 脑图链接如下:java部分基础知识整理----百度 ...

  5. wifi基础知识整理

    转自 :http://blog.chinaunix.net/uid-9525959-id-3326047.html WIFI基本知识整理 这里对wifi的802.11协议中比较常见的知识做一个基本的总 ...

  6. JavaScript基础知识整理

    只整理基础知识中关键技术,旨在系统性的学习和备忘. 1.在 JScript 中 null 和 undefined 的主要区别是 null 的操作象数字 0,而 undefined 的操作象特殊值NaN ...

  7. C#基础知识整理

    年时,北风吹雁雪纷纷,一条秋裤冻上头.冷的连手都懒得动,就随便翻翻书,也没有更新博客,如今年已过,开始投入到正常的工作状态中,趁现在需求还没有来,把C#基础知识梳理一下,其实一直以来就想这样做的,对于 ...

  8. Oracle ASM 磁盘组基础知识整理(收藏版)

    转至:https://cloud.tencent.com/developer/article/1494403 为什么要写这么一篇基础知识呢?还是有那么一点点原因的,不是胡编乱造还真是有真实存在的事件的 ...

  9. Linux基础知识整理

    一.基础知识 1.Linux简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件 ...

随机推荐

  1. [luoguP1403] [AHOI2005]约数研究(这。。。)

    传送门 用类似筛法的原理,就好啦 ——代码 #include <cstdio> int n, ans; int a[1000001]; int main() { int i, j; sca ...

  2. HDU 4902 (牛叉的线段树)

    Nice boat Problem Description There is an old country and the king fell in love with a devil. The de ...

  3. hdu 2089 记忆化搜索写法(数位dp)

    /* 记忆化搜索,第二维判断是否是6 */ #include<stdio.h> #include<string.h> #define N 9 int dp[N][2],digi ...

  4. 【网络流24题】最长k可重区间集问题(费用流)

    [网络流24题]最长k可重区间集问题 [问题分析] 最大权不相交路径问题,可以用最大费用最大流解决. [建模方法] 方法1 按左端点排序所有区间,把每个区间拆分看做两个顶点<i.a>< ...

  5. tomcat这种http服务器,是能接收到客户端的断开信息的,并能打印出来

    如,tomcat的运行文件 DEBUG -- CLOSE BY CLIENT STACK TRACE

  6. bootstrap日期控件

    http://www.bootcss.com/p/bootstrap-datetimepicker/ <link href="js/b/css/bootstrap-datetimepi ...

  7. http://www.html5tricks.com/demo/jiaoben2255/index.html 排序算法jquery演示源代码

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or ...

  8. 分布式消息服务DMS如何实现死信消息的消费

    本文部分内容节选自华为云帮助中心的分布式消息服务(DMS)服务的产品介绍 死信消息是什么 死信消息是指无法被正常消费的消息.分布式消息服务DMS支持对消息进行异常处理.当消息进行多次重复消费仍然失败后 ...

  9. SpringBoot在Impl类中调用其它service层失败解决办法

    在AImpl.java文件中引用BImpl.java的方法,编译正常,运行到调用的地方,报空指针异常,跟踪到异常位置,发现service为空,也就是按照之前controller层通过@Autowire ...

  10. URAL 1326. Bottle Taps(简单的状压dp)

    题目不太好读懂,就是先给你一个n代表要从n个物品中买东西,然后告诉你这n个东西的单位价格,在给你m个集合的情况.就是每一个结合中有x件物品.他们合起来买的价格是k.这x件物品依次是:p1--px.之后 ...