win32 SDK
小小玮
以梦为马
展开
-
终于弄了个人网站
我的个人技术网站:点击打开链接原创 2017-09-19 13:47:19 · 924 阅读 · 1 评论 -
设置控件的字体属性
默认的控件上的字体锯齿太严重,其实可以这样设置任何控件的字体(button,tab,wnd......) // 设置字体参数 LOGFONT LogFont; ::memset(&LogFont, 0, sizeof(LOGFONT)); lstrcpyW(LogFont.lfFaceName,L"华文行楷"); LogFont.lfWeight = 400;//字体粗细原创 2013-04-23 21:21:35 · 1484 阅读 · 0 评论 -
实现自己的接口-DLL
win32 API 是微软提供给我们编程的有力工具,这些API都是以dll(动态链接库)的形式出现的,DLL的好处不言而喻,以接口的方式给程序员,在整个程序里都是可见的,虽然我没有参加过真正的公司内的项目开发,但是我相信,公司都是利用一些接口在程序员们之间进行开发项目的,可能利用的接口不一定是dll(例如com接口),但是原理都是一样的,下面我们来开发自己的外部接口:步骤:1)打开VS(V原创 2013-04-12 12:35:40 · 981 阅读 · 0 评论 -
创建原本花哨的win32 界面
不知道你有没有发现,当我们在工具箱中拖拉button控件时,button总是那么丑陋,本应该有四态(或三态)的按钮到底怎样实现?无意中在MSDN发现,原来如此简单只要在代码文件上加上以下东东,界面就漂亮了// 启用视觉样式#pragma comment(linker,"\"/manifestdependency:type='win32' \name='Microsoft原创 2013-04-11 18:44:38 · 1054 阅读 · 0 评论 -
小型餐饮管理系统(c++/win32 SDK/MYSQL 数据库)
坚持了20个晚上的餐饮系统(这个工程的设计上就耗费了我一个星期时间,主要是数据库的设计),基本上完成了(关于库存管理的功能没有去做,因为最近很忙),本系统模仿网上下载的“店小二餐饮管理系统”模型制作,采用c++和c语言(前期设计时想完全用c++制作,后来发现出现了一点小问题,有些变量无法传递,所以就采用了c和c++配合使用,唉,c++没学好啊),餐饮信息全部存在数据库中,数据库采用的是mysql,原创 2012-12-17 16:25:52 · 5207 阅读 · 2 评论 -
动态设置cusor & icon
设置光标HCURSOR hcur1= LoadCursor(hInst,MAKEINTRESOURCE(IDC_CURSOR1)); SetClassLong(hwnd, GCL_HCURSOR, (LONG) hcur1); 设置图标HICON hIcon1= LoadIcon(hInst,MAKEINTRESOURCE(IDI_ICON1));SetClassLon原创 2013-03-26 21:56:31 · 779 阅读 · 0 评论 -
工具栏、状态栏创建代码
// 工具栏学习.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "工具栏学习.h"#include "Resource.h" #define MAX_LOADSTRING 100#include "CommCtrl.h "#pragma comment(lib,"comctl32.lib")// 全局变量:HI原创 2013-03-26 21:46:49 · 1067 阅读 · 0 评论 -
按钮补充篇
1、位图按钮1)先指定按钮具有 BS_BITMAP样式2)发送消息:HBITMAP hbmp1=LoadBitmap(hInst,MAKEINTRESOURCE(IDB_BITMAP2)); SendMessage(hButton2, BM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hbmp1);2、图标按钮1)先指定按钮具有BS_ICON样式原创 2013-03-27 17:51:17 · 731 阅读 · 0 评论 -
GUI 剖析之5) 我想写音乐贺卡程序
你有没有在QQ里发过音乐贺卡给好友,其实音乐贺卡就是播放动态图片的同时也在播放音乐,下面我们就来实现自己的音乐贺卡:显示图片我们已经介绍过,显示动态图片我们可以在程序中加入定时器,每隔一段时间就更换图片,如此简单而已,下面主要实现播放声音的代码:#include //加上,不然PlaySound函数无法使用#pragma comment(lib, "WINMM.LIB") //加上,原创 2012-11-17 10:39:10 · 690 阅读 · 0 评论 -
解决wsprintf不支持浮点数据的方案
我们经常用wsprint去转换数据转换为字符串(我们也可以用_wtof,_wtoi进行反向转换),但是wsprintf却不支持浮点数据的转换,解决方案如下: #includefloat lf_PriceAfterDiscount=12.3;WCHAR szPriceAfterDiscount[256];CString str; str.Format(L"%f", lf_P原创 2013-03-26 21:39:59 · 2805 阅读 · 0 评论 -
线程创建与用法
我们知道创建线程有两种方法举例:一、_beginthread 创建线程用法: #include process.h>_beginthread (Thread1, 0, NULL) ;void Thread1(){//进行处理}二、CreateThread创建线程CreateThread(NULL, 0, AccessSqlProc, hwnd, 0, NU原创 2013-03-23 23:38:46 · 625 阅读 · 0 评论 -
改变对话框背景色
虽然我们可以用GDI或者GDI+去改变窗口的背景色,例如利用API FillRect(...)填充颜色...,但是win32 有一个很好的办法去解决这个问题,真的很方便,我也是参考MSDN得来的,在此贴出来,希望对大家有帮助:case WM_CTLCOLORDLG: { HBRUSH g_hbrBackground = CreateSolidBrush(RGB(252,25原创 2013-03-23 23:12:21 · 834 阅读 · 0 评论 -
GUI 剖析之控件篇之 组合框
下拉列表框控件(组合框控件)(combo box):执行步骤:拖放该控件至对话框->执行以下代码(假设ID为IDC_COMBO4):1. 向组合框添加项目SendDlgItemMessage(hDlg,IDC_COMBO4,CB_ADDSTRING,0,(LPARAM)_T("+"));SendDlgItemMessage(hDlg,IDC_COMBO4,CB_A原创 2012-11-18 12:20:26 · 794 阅读 · 0 评论 -
禁用非客户区点击
case WM_NCLBUTTONDOWN:{ PostMessage(hwnd,WM_LBUTTONDOWN, wParam,HTCLIENT);//非客户区点击,转换为客户区点击使得移动窗口失效}原创 2013-04-05 19:28:20 · 911 阅读 · 0 评论 -
MSDN 备份之改变编辑框的背景色
demo1:case WM_CTLCOLOREDIT: if ((HWND)lParam == hEdit) { SetDCBrushColor((HDC)wParam, RGB(255, 0, 0)); return (BOOL)GetStockObject(DC_BRUSH); } break;demo2:HDC edithdc = (HDC)wPara原创 2013-03-22 14:52:52 · 687 阅读 · 0 评论 -
不规则窗口高级篇
前面我写了一篇文章介绍了制作不规则窗口的方法,不过那种方法感觉有点麻烦,下面介绍另一种方法,你绝对会感觉简单,而且效果非常好,懂得PS(photoshop)我想更好:代码:(红色文字为关键部分)// 不规则窗口.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "不规则窗口.h"#define MAX_LOADSTRING 100原创 2013-03-20 14:15:07 · 1054 阅读 · 0 评论 -
窗口子类化实现自绘按钮如此简单
有没有发现利用createwindow创建按钮感觉太单调,msdn上说的owndraw 按钮太复杂,其实子类化按钮,可以很方便的实现自绘按钮,只需要会点贴图知识就行了。下面采用gdi+贴图:(关于gdi+环境的搭建我在前面的章节里已经介绍了) 第一步:WNDPROC Button1Proc; LRESULT CALLBACK ButtonProc1(HWND hwnd,UINT原创 2013-04-21 23:06:21 · 4266 阅读 · 1 评论 -
GUI 剖析之资源篇之 对话框
对话框:1) 用户添加对话框资源("Insert"->Resource->Dialog->New)1. 模态对话框(用户不能在对话框与同一个程序中的另一个窗口之间进行切换):Eg:DialogBox(hInst,MAKEINTRESOURCE(IDD_ABOUTBOX),hWnd,About);// IDD_ABOUTBOX是对话框资源的ID, About是对原创 2012-11-18 12:41:07 · 498 阅读 · 0 评论 -
win32 窗口程序实现控制台信息跟踪 简单案例
// test.cpp : 定义应用程序的入口点。//#include "stdafx.h"#include "test.h"#include using namespace std;#define MAX_LOADSTRING 100// 全局变量:HINSTANCE hInst; // 当前实例TCHAR szTitle[MAX_LOADSTRING];原创 2014-07-02 20:34:22 · 1202 阅读 · 0 评论 -
窗口程序中使用控制台实现信息跟踪
1. 原理 首先我们来看一下linker的 /subsystem 选项 该选项的语法形式如下:/SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|WINDOWSCE}[,major[.mino转载 2014-07-02 20:26:20 · 836 阅读 · 0 评论 -
定位到文件夹
char str[260]; char filename[260]; sprintf_s(filename,"%d%d%d",nYear,nMonth,nDay); strcpy_s(str,"..\\log\\"); strcat_s(str,filename); strcat_s(str,".txt"); char strSel[260]; strcpy_s(原创 2014-04-04 14:13:18 · 589 阅读 · 0 评论 -
GUI 剖析 之初识main函数 起草人:天策
二)、初识main函数 我相信您一定写过C程序,那您一定知道C程序的main函数,我也绝对相信你写的main函数不是int main() 就是 void main(),也就是没有参数,可是真正的main函数是有参数的,原型是:int main(int argc,char *argv[],char *envp[]),不知道吧,呵呵,下面来看看这些参数吧。Argc:命令行参数个数Argv:原创 2012-11-10 19:17:50 · 1934 阅读 · 0 评论 -
win32 play flash file
国外网站收集的一段代码,很简单,实现播放flash文件,贴出来大家分享 #include "stdafx.h"#include "win32 play flash file.h"int WINAPI WinMain(HINSTANCE inst,HINSTANCE prev,LPSTR cmd,int show) { MSG msg={0}; void* init =原创 2013-06-20 22:05:17 · 1440 阅读 · 0 评论 -
GUI 剖析之播放器 实例2) 全功能播放器
// 全功能播放器.cpp : 定义应用程序的入口点。//本播放器采用MciSendString接口实现,还有一些功能没有实现,读者可参考 GUI 剖析之播放器实例1)代码,望见谅点击打开链接参考播放器实例3 #include "stdafx.h"#include "全功能播放器.h"#include "resource.h"#include #include原创 2012-11-21 20:37:12 · 1090 阅读 · 0 评论 -
提示控件的使用
//我们知道,当我们在使用一个软件时,我们移动鼠标,当光标移到一个按钮或其他控件上时,一般会出现一个矩形的提示框,列出相关信息,下面我们利用提示控件实现这一功能。下面的代码我是参考其他资料完善的。#include "stdafx.h"#include "resource.h"#include "Windows.h"#include "tchar.h"#include "co原创 2012-11-28 20:02:53 · 585 阅读 · 0 评论 -
GUI 剖析之播放器实例1
//下面给出一个播放器实例的全部代码,纯API+C语言,简单易懂,不过还有一些小BUG...希望大家理解...点击打开链接参考播放器实例2#include "stdafx.h"#include "播放器项目.h"#include #include #include #include "resource.h"#pragma comment(lib, "winmm.li原创 2012-11-20 17:38:13 · 938 阅读 · 0 评论 -
GUI 剖析之控件篇之 进度条
进度条控件: 执行步骤:1. 拖放进度条控件至对话框2. 执行以下代码(假设ID为:IDC_PROGRESS1)#include "Commctrl.h"#pragma comment(lib,"comctl32.lib")设置进度条控件范围:static LONGnMinPos=0, nMaxPos=100,nPos=0;原创 2012-11-18 13:59:08 · 1367 阅读 · 0 评论 -
GUI 剖析之控件篇之 滑动条控件
滑动条控件(slider control): 滑动条控件和进度条的作用类似,在播放器中经常用到这类控件,不过,实现美丽的这类控件以给用户舒适感,这类控件的利用率就不高了(利用图形接口自绘),不过还是介绍下:对话框上使用滑动条添加头文件:#include "MMSystem.h "#include "CommCtrl.h "#include "CommDlg.h "原创 2012-11-18 12:30:18 · 3568 阅读 · 0 评论 -
windows核心编程 DLL技术
注:本文章转载于网络,源地址为:http://blog.csdn.net/ithzhang/article/details/7051558 本篇文章将介绍DLL显式链接的过程和模块基地址重定位及模块绑定的技术。 第一种将DLL映射到进程地址空间的方式是直接在源代码中引用DLL中所包含的函数或是变量,DLL在程序运行后由加载程序隐式的载入,此种方式被称为隐式链接。转载 2013-05-15 08:35:00 · 1296 阅读 · 0 评论 -
GUI 剖析之实现窗口显示在Z轴最上方
//用过快播的朋友应该知道快播的窗口总是在最上方显示,下面通过简单代码实现这一功能,虽然效果不是很好,呵呵 switch (message) { case WM_CREATE: { SetTimer(hWnd,1,33,NULL); break; }case WM_TIMER: { RECT rect; Get原创 2012-11-22 22:59:22 · 687 阅读 · 0 评论 -
Win32多线程编程 — 线程同步与通信
Win32多线程编程 — 线程同步与通信一.线程间数据通信系统从进程的地址空间中分配内存给线程栈使用。新线程与创建它的线程在相同的进程上下文中运行。因此,新线程可以访问进程内核对象的所有句柄、进程中的所有内存以及同一个进程中其他所有线程的栈。这样一来,同一个进程中的多个线程可以很容易的相互通信。到目前为止,将数据从一个线程传到另一个线程的惟一方法是在创建线程时传递给新线转载 2013-05-04 12:04:26 · 864 阅读 · 0 评论 -
win32 控件之 sysLink控件(超链接)
闲来无聊,看了下MSDN,原来syslink控件是这样实现的:步骤:1.拖放syslink控件至对话框2.修改caption为你想要的任何链接名(如:百度一下)3.在WM_NOTIFY消息里进行如下处理代码:case WM_NOTIFY: switch (((LPNMHDR)lParam)->code) { case NM_CLICK: case N原创 2013-03-17 14:02:54 · 4445 阅读 · 1 评论 -
.h头文件 .lib动态链接库文件 .dll 动态链接库三者关系
.h头文件 .lib动态链接库文件 .dll 动态链接库.h头文件是编译时必须的,lib是链接时需要的,dll是运行时需要的。附加依赖项的是.lib不是.dll,若生成了DLL,则肯定也生成 LIB文件。如果要完成源代码的编译和链接,有头文件和lib就够了。如果也使动态连接的程序运行起来,有dll就够了。在开发和调试阶段,当然最好都有。.h .lib .dll三者的关系是:转载 2013-05-04 12:01:52 · 965 阅读 · 0 评论 -
捕获系统关机
有时候我们的应用程序在系统非正常情况下关机要保证数据不会丢失,下面的代码可以给予我们提示,在关机之前给予我们一点时间去保存数据 case WM_ENDSESSION: { if (IDYES==MessageBox(hDlg,TEXT("正在关机...数据要保存吗?"),TEXT("提示"),MB_ICONEXCLAMATION|MB_YESNO)) { r原创 2013-03-20 14:06:54 · 901 阅读 · 0 评论 -
设置按钮的背景色和颜色
先在WM_CREATE或者WM_INITDIALOG消息里执行以下语句://设置按钮的属性为可自绘 HWND hBn = GetDlgItem(hDlg, IDOK); SetWindowLong(hBn, GWL_STYLE, GetWindowLong(hBn, GWL_STYLE) | BS_OWNERDRAW); return INT_PTR(TRUE);然原创 2013-03-19 23:09:54 · 10715 阅读 · 0 评论 -
设置对话框图标
缺省的对话框是没有图标的,不过我们可以利用下面的API设置图标//设置对话框图标 HINSTANCE hInst=(HINSTANCE)GetWindowLong(hDlg,GWL_HINSTANCE); SendMessage(hDlg, WM_SETICON, ICON_BIG, (LPARAM)LoadIcon(hInst, MAKEINTRESOURCE(IDI_ICO原创 2013-03-19 11:52:25 · 1764 阅读 · 0 评论 -
GUI 剖析之控件篇之 图片控件
图片控件(picture control):图片控件在对话框中利用率超高,虽然上面介绍的GDI或GDI+可以实现图片绘制,但是图片控件会让你觉得这一切太方便了:操作步骤:1. 载入BMP位图资源2. 拖放图片控件到对话框3. 在图片控件的属性里设置“type”为“bitmap”4. 设置图片控件属性里的”Image”为原创 2012-11-18 12:32:24 · 633 阅读 · 0 评论 -
GUI 剖析之控件篇之 列表框
列表框控件(list box):在安装软件时你会看到有一个列表框提示当前安装文件及盘符信息,下面我们来自己实现:操作步骤:拖放该控件至对话框->执行以下代码:1. 向列表框添加内容项:SendDlgItemMessage(hDlg,IDC_LIST1,LB_ADDSTRING,0,(LPARAM)TEXT("天策1")); SendDlgItemMessage原创 2012-11-18 12:21:40 · 1265 阅读 · 0 评论 -
GUI 剖析之资源篇之 状态栏
状态栏:你一定看见过一种窗口,它在下方显示一写用户状态及系统时间等...#defineIDC_MAIN_STATUS 8 #defineIDC_MAIN_EDIT 9 HWND hStatus = CreateWindowEx(0,STATUSCLASSNAME, NULL,原创 2012-11-18 12:39:37 · 540 阅读 · 0 评论 -
GUI 剖析之控件篇之 编辑框
编辑框控件(edit control):1) 编辑器拖放编辑框你只要将编辑框拖放到对话框上就可以了,随后你可以执行你想要的动作,就这么简单。2) 动态创建编辑框HWND hEdit;hEdit=CreateWindow(TEXT("edit"), TEXT("编辑框"), WS_C原创 2012-11-18 12:25:32 · 644 阅读 · 0 评论