win32开发(文件、字体和色彩)
2017-12-21 18:08
239 查看
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
在操作系统上,文件选择、色彩选择、和字体选择这些功能一般都是操作系统提供的。记得以前在写mfc的时候,由于基本功能都是mfc封装好的,每次调用的时候都觉得非常得神奇,等到后来有机会用win32 api写的时候,才发现编写这些功能远比我们想象得要简单。对于这些功能,mfc只不过简单的封装了一下,没有做什么特别的处理,
下面,我们就要看看这些功能分别是怎么实现的。这些代码都是从msdn copy过来的,略微做了一些修改。首先,我们看一下文件对话框怎么写,
OPENFILENAME ofn; // common dialog box structure
char szFile[260]; // buffer for file name
HANDLE hf; // file handle
// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = szFile;
szFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// Display the Open dialog box.
if (GetOpenFileName(&ofn)==TRUE)
; 其次就是字体对话框,代码如下,
CHOOSEFONT cf; // common dialog box structure
static LOGFONT lf; // logical font structure
static DWORD rgbCurrent; // current text color
HFONT hfont, hfontPrev;
DWORD rgbPrev;
// Initialize CHOOSEFONT
ZeroMemory(&cf, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof (CHOOSEFONT);
cf.hwndOwner = hWnd;
cf.lpLogFont = &lf;
cf.rgbColors = rgbCurrent;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
if (ChooseFont(&cf)==TRUE) {
} 最后就是色彩对话框,CHOOSECOLOR cc; // common dialog box structure
static COLORREF acrCustClr[16]; // array of custom colors
HBRUSH hbrush; // brush handle
static DWORD rgbCurrent; // initial color selection
// Initialize CHOOSECOLOR
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hWnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.rgbResult = rgbCurrent;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
if (ChooseColor(&cc)==TRUE) {
} 上面这些代码,大家都可以直接使用,嵌入到自己的项目当中。如果是为了demo验证,建议大家先添加一个按钮,然后在WM_COMMAND里面直接调用这些函数,看看效果和预期的是否相同。
在操作系统上,文件选择、色彩选择、和字体选择这些功能一般都是操作系统提供的。记得以前在写mfc的时候,由于基本功能都是mfc封装好的,每次调用的时候都觉得非常得神奇,等到后来有机会用win32 api写的时候,才发现编写这些功能远比我们想象得要简单。对于这些功能,mfc只不过简单的封装了一下,没有做什么特别的处理,
下面,我们就要看看这些功能分别是怎么实现的。这些代码都是从msdn copy过来的,略微做了一些修改。首先,我们看一下文件对话框怎么写,
OPENFILENAME ofn; // common dialog box structure
char szFile[260]; // buffer for file name
HANDLE hf; // file handle
// Initialize OPENFILENAME
ZeroMemory(&ofn, sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);
ofn.hwndOwner = hWnd;
ofn.lpstrFile = szFile;
szFile[0] = '\0';
ofn.nMaxFile = sizeof(szFile);
ofn.lpstrFilter = "All\0*.*\0Text\0*.TXT\0";
ofn.nFilterIndex = 1;
ofn.lpstrFileTitle = NULL;
ofn.nMaxFileTitle = 0;
ofn.lpstrInitialDir = NULL;
ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
// Display the Open dialog box.
if (GetOpenFileName(&ofn)==TRUE)
; 其次就是字体对话框,代码如下,
CHOOSEFONT cf; // common dialog box structure
static LOGFONT lf; // logical font structure
static DWORD rgbCurrent; // current text color
HFONT hfont, hfontPrev;
DWORD rgbPrev;
// Initialize CHOOSEFONT
ZeroMemory(&cf, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof (CHOOSEFONT);
cf.hwndOwner = hWnd;
cf.lpLogFont = &lf;
cf.rgbColors = rgbCurrent;
cf.Flags = CF_SCREENFONTS | CF_EFFECTS;
if (ChooseFont(&cf)==TRUE) {
} 最后就是色彩对话框,CHOOSECOLOR cc; // common dialog box structure
static COLORREF acrCustClr[16]; // array of custom colors
HBRUSH hbrush; // brush handle
static DWORD rgbCurrent; // initial color selection
// Initialize CHOOSECOLOR
ZeroMemory(&cc, sizeof(CHOOSECOLOR));
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hWnd;
cc.lpCustColors = (LPDWORD) acrCustClr;
cc.rgbResult = rgbCurrent;
cc.Flags = CC_FULLOPEN | CC_RGBINIT;
if (ChooseColor(&cc)==TRUE) {
} 上面这些代码,大家都可以直接使用,嵌入到自己的项目当中。如果是为了demo验证,建议大家先添加一个按钮,然后在WM_COMMAND里面直接调用这些函数,看看效果和预期的是否相同。
相关文章推荐
- Delphi XE5开发Android程序使用自定义字体文件.
- Win32可执行文件的开发过程 - Win32汇编语言008
- 安卓开发引用ttf字体文件
- Win32可执行文件的开发过程
- webpack开发vue2项目中的一些坑(1、跨域 2、打包后后端访问一片空白3、加载第三方库的字体文件出错4、加载背景图出错)
- win32开发(画笔、刷子、字体)
- web开发 web开发(脚本和动态语言) 电子签名 active CSDN 推荐tag:win32 dll pcpos 证书 文件
- win32 SDK开发中打开 保存文件对话框的使用
- 文件系统过滤驱动开发(一)—Win32底层开发小组
- Android开发在string.xml文件中设置部分字体颜色大小
- 【ttf压缩】网页开发中引入字体文件过大,加载缓慢的解决办法【字蛛】【web Font】
- Delphi XE5开发Android程序使用自定义字体文件.
- Win32 可执行文件的开发过程
- eclipse中android开发怎么修改xml文件字体大小
- 达内学习笔记-win32开发windows.h文件
- 【原创】聊天+传送文件+设置字体及颜色(vs2010+mfc开发)
- Android开发在string.xml文件中设置部分字体颜色大小
- 跟我一起玩Win32开发(19):浏览和打开文件
- Android开发在string.xml文件中设置部分字体颜色大小
- Android开发在string.xml文件中设置部分字体颜色大小