Win32
csdn_gddf102384398
这个作者很懒,什么都没留下…
展开
-
Win32实现阴影窗口
#include <windows.h>#include <math.h>#pragma comment(lib,"Msimg32.lib")LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );LRESULT CALLBACK ForegroundWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARA.原创 2022-04-14 19:49:56 · 723 阅读 · 0 评论 -
Win32按钮设计思路
#include <windows.h>#include <stdio.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);LRESULT CALLBACK ChildWndProc(HWND, UINT, WPARAM, LPARAM);HINSTANCE hInst;#ifdef _DEBUGint main()#elseint WINAPI WinMain(HINSTANCE hInstance, .原创 2022-04-09 01:02:55 · 360 阅读 · 0 评论 -
Win32实现VS风格的Dockable窗口的思路
#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);HWND hMainWnd;int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("Win32DockTest"); HWND .原创 2022-04-05 12:27:53 · 278 阅读 · 1 评论 -
Win32无边框窗口实现拖动和改变大小
#include <windows.h>LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ static TCHAR szAppName[] = TEXT("NoBorderWnd"); HWND hwnd; MSG .原创 2022-04-04 14:55:50 · 2248 阅读 · 1 评论 -
纯Win32实现带alpha通道的位图的不规则窗口
#include <windows.h>/* Declare Windows procedure */LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);/* Make the class name into a global variable */char szClassName[] = "PNGDialog";int WINAPI WinMain(HINSTANCE hThisInstance,.原创 2022-03-28 00:15:58 · 368 阅读 · 0 评论 -
PAINTSTRUCT中的无效矩形
Windows在WM_PAINT中调用BeginPaint函数使无效矩形变为有效是指Windows用注册窗口类时指定的画刷来擦除无效区,Windows只需要擦除无效区而非整个客户区。原创 2020-12-26 10:54:46 · 178 阅读 · 0 评论 -
对GDI位图对象的理解《Windows程序设计》
转:https://blog.51cto.com/12731497/2114185转载 2020-02-04 13:17:27 · 169 阅读 · 0 评论 -
MyUtilityOnWin
MyUtilityOnWin.h#pragma once#include <stdio.h>#include <time.h>#include <windows.h>#define OnlyRead 1 //文件必须存在,若不存在,则返回NULL#define ReadWrite 2 //清空文件内容,若文件不存在就创建#define Appe...原创 2020-01-15 10:04:31 · 156 阅读 · 0 评论 -
信号波形绘制
#include <Windows.h>#include <tchar.h>#include <math.h>HINSTANCE hInst;LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);int WINAPI _tWinMain(HI...原创 2019-10-29 11:52:02 · 2089 阅读 · 0 评论 -
Win32 API自绘按钮
WinMain.c#include <windows.h>HINSTANCE hInst;WNDPROC OldBtnProc;BOOL bMouseHover;HBRUSH hBrush1;HBRUSH hBrush2;HBRUSH hBrush3;LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM...原创 2019-09-30 16:50:41 · 1372 阅读 · 0 评论 -
Win32窗口子类化:使用TAB键切换控件焦点
// Win32Project1.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "Win32Project1.h"#define MAX_LOADSTRING 100// 全局变量: HINSTANCE hInst; // 当前实例WCHAR szTitle[MAX_L...原创 2019-09-20 07:24:08 · 885 阅读 · 0 评论 -
Win32进程间通信之共享内存
写进程/*写进程*/#include <stdio.h>#include <Windows.h>void main(){ HANDLE hFileMap = CreateFileMappingA(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE,0,1024,"ShareMemTest"); if (hFileMap == N...原创 2019-09-07 14:29:42 · 454 阅读 · 0 评论 -
VC链接器选项之/MT和/MD的区别
如果一个dll有下面这种函数,则必须使用/MD或/MDd选项链接,不能使用/MT或/MTd://必须使用/MD或/MDd链接选项来生成此模块,不能是/MT或/MTd_declspec(dllexport)int* test(){ return new int[5];}否则,使用此模块的人如果有下述操作,程序运行就会崩溃:int main(){ int* p = test();...原创 2019-06-22 19:26:44 · 1622 阅读 · 0 评论 -
Windows获取超过4GB文件的大小、其他文件操作
VC++无论在x86还是x64下,小数默认都是double型,整数默认都是int型。Windows获取超过4GB文件的大小://获取超过4GB大小的文件,0xFFFFFFFF=2^32-1DWORD64 GetLargeFileSize(HANDLE hFile){ DWORD dwHiSize; DWORD dwLoSize = GetFileSize(hFile, &amp;amp;amp;amp;amp;dwH...原创 2019-01-29 17:25:19 · 2307 阅读 · 0 评论 -
多线程之多生产者,多消费者,多缓冲区问题解决(Win32API实现)
/* 多线程之多生产者,多消费者,多缓冲区问题*/#include<stdio.h>#include<windows.h>#include<process.h>#define BUF_SIZE 10int buffer[BUF_SIZE]; //缓冲区int in=0, out=0;HANDLE hEmpty, hFull;C...原创 2018-08-17 10:02:33 · 1752 阅读 · 2 评论 -
Win32文件操作
①打开文件的示例代码:HANDLE hSrcFile = CreateFile(TEXT(&quot;main.cpp&quot;), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hSrcFile==INVALID_HANDLE_VALUE) { printf(&quot;打开文件失败\n&quot;原创 2018-10-24 10:05:31 · 967 阅读 · 0 评论 -
Win32显示系统调用失败后的错误信息
void ShowSystemError(HWND hwndMsgOwner){ HLOCAL hlocal = NULL; FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS | FORMAT_MESSAGE_ALLOCATE_BUFFER, NULL, GetLastError(), MAK...原创 2018-11-13 10:23:07 · 899 阅读 · 0 评论 -
基于select非阻塞模型的服务端程序示例(Winsock2实现)
/*总结: ①无论阻塞还是非阻塞,select都不会立即返回,select就是用于非阻塞模型中的。 ②将SOCKET置于非阻塞模式下时,处理连接或处理收发数据的Socket API都会立即返回。 ③select会监视fd_set中的所有套接字,一旦有套接字发生IO事件(包括客户端的连接请求),select会立即返回, 并将fd_set中没有发生IO事件的套接字移除。由此可见,如果想让...原创 2018-11-25 19:34:31 · 500 阅读 · 0 评论 -
Win32从资源中加载PNG图片,然后创建GDI+的Image对象
void LoadPNGFromStaticRes(HMODULE hModule, UINT nResId, Image** ppImg){ HRSRC hRes = FindResource(hModule, MAKEINTRESOURCE(nResId), TEXT("PNG")); DWORD dwResSize = SizeofResource(hModule, hRes); ...原创 2018-12-01 22:15:22 · 2467 阅读 · 1 评论 -
Win32格式化字符串到消息框
int MessageBoxPrintf(TCHAR * szCaption, TCHAR * szFormat, ...){ TCHAR szBuffer[1024]; va_list pArgList; // The va_start macro (defined in STDARG.H) is usually equivalent to: // pArgList = (cha...原创 2018-12-17 10:15:32 · 534 阅读 · 0 评论 -
数据解析
对于面向字节流的协议,如串口通信、TCP,数据解析方法简介如下(以串口为例):读取串口: BYTE readBuf[BUF_SIZE]; DWORD dwRead; DWORD dwWantRead = BUF_SIZE; DWORD dwResolveSuccess = 0; while (pctcb->bStartCheck) { dwRead = 0; if...原创 2018-12-29 14:53:48 · 272 阅读 · 0 评论 -
Windows GDI绘图
①对话框程序中,WM_INITDIALOG消息在产生之后并不会产生WM_SIZE消息,只有具有OVERLAPPED风格的对话框才会在WM_INITDIALOG后产生WM_SIZE;对话框在尺寸发生变化时不会产生WM_PAINT消息,要想尺寸变化时更新窗口,需要在WM_SIZE中调用InvalidateRect。②在WM_PAINT中创建内存DC,并在WM_PAINT中销毁,这种情况下即使不擦除背...原创 2019-01-10 21:59:24 · 797 阅读 · 0 评论 -
网络通信编程
IOCP的介绍:https://www.cnblogs.com/talenth/p/7068392.html进程间通信介绍:https://www.cnblogs.com/findumars/p/6329593.html多线程同步介绍:1、用户模式的多线程同步有:原子操作(Interlocked函数)、临界区CRITICAL_SECTION、条件变量、Slim读写锁等2、内核模式的线程...原创 2019-01-22 11:06:02 · 353 阅读 · 0 评论 -
Windows使用事件内核对象实现生产者消费者问题
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <tchar.h>#include <Windows.h>#include <process.h>#include <locale.h>TCHAR buf[256];HANDLE hProduceEvent,...原创 2019-01-30 14:59:26 · 283 阅读 · 0 评论 -
类似示波器显示波形的Windows程序(Win32 API实现)
以下是我用C语言写的一个实现了示波器功能的Windows程序,显示波形,其显示风格同示波器一样,以下是源码,如有不正支持求大神赐教!#include&lt;Windows.h&gt;#include&lt;math.h&gt;//必须包含,否则调用sin不起作用#define ID_START_BTN 1#define ID_TIMER 2#define START_BTN_W...原创 2018-08-03 16:03:28 · 1843 阅读 · 0 评论