WTL编程小技巧汇编
以下技巧可应用于SDI和MDI程序:
1、设置窗体生成大小并中央显示窗口
在全局函数Run中创建了CMainFrame,修改创建的语句就可以指定窗口的初始大小。在这个函数中,在ShowWindow()之前调用CenterWindow()可以将主窗口在屏幕中央显示,参见代码:
int Run(LPTSTR /*lpstrCmdLine*/ = NULL, int nCmdShow = SW_SHOWDEFAULT)
{
... ... RECT rc = {, , , }; // 设置窗口的初始位置(0,0)、大小(300,600)
if(wndMain.CreateEx(NULL, rc) == NULL)
{
ATLTRACE(_T("Main window creation failed!\n"));
return ;
}
wndMain.CenterWindow(); // 居中显示窗口
wndMain.ShowWindow(nCmdShow);
... ...
return nRet;
}
2、设置窗体最大/小尺寸
在CMainFrame中有一个消息叫做WM_GETMINMAXINFO负责控制窗体最大/小尺寸的,实现这个消息的响应函数就行了:
BEGIN_MSG_MAP(CMainFrame)
... ...
MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)
END_MSG_MAP() ... ... LRESULT CMainFrame::OnGetMinMaxInfo(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM lParam, BOOL& /*bHandled*/)
{
// TODO: 这里设置窗体的最大/小属性
LPMINMAXINFO lpInfor = (LPMINMAXINFO)lParam;
lpInfor->ptMinTrackSize.x = ;
lpInfor->ptMinTrackSize.y = ;
lpInfor->ptMaxTrackSize.x = ;
lpInfor->ptMaxTrackSize.y = ; return ;
}
3、动态设置窗体标题
可以通过加载系统资源中的字符串,并把字符串作为窗体标题显示出来。要用到CString需加载头文件<atlmisc.h>,在CMainFrame::OnCreate函数中可以设置窗体标题:
CString strInfor;
strInfor.LoadString(IDS_EDITSTRING);
SetWindowText(strInfor);
4、设置对话框的字体和背景颜色
比如说设置“关于”对话框的字体和背景色,可以设置两个消息的映射:WM_CTLCOLORDLG 和 WM_CTLCOLORSTATIC。在消息响应函数中可以设置字体颜色和背景色:
MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor)
MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor) ... ... LRESULT OnCtrlColor(UINT, WPARAM, LPARAM, BOOL&)
{
// 设置背景模式和文字颜色
SetBkMode((HDC)wParam, TRANSPARENT); // 透明背景
SetTextColor((HDC)wParam, RGB(, , )); // 白色文字
return (LRESULT)AtlGetStockBrush(BLACK_BRUSH);
}
5、设置窗体控件默认字体
当一个控件被放置在对话框上时,控件就采用对话框的缺省字体。然而,当一个控件如视图或者分割面板被使用在窗口中时,将使用SYSTEM_FONT字体,这种字体不是很漂亮。要改变字体的话,只要在工程中增加atlmisc.h文件,然后调用AtlGetStockFont取得truetype字体DEFAULT_GUI_FONT,将控件设置成这种字体:
MyControl.SetFont(AtlGetStockFont(DEFAULT_GUI_FONT), TRUE);
WTL编程小技巧汇编的更多相关文章
- Java编程小技巧(1)——方法传回两个对象
原文地址:Java编程小技巧(1)--方法传回两个对象 | Stars-One的杂货小窝 题目是个伪命题,由Java语法我们都知道,方法要么返回一个对象,要么就不返回 当有这样的情况,我们需要返回两个 ...
- Shellcode编程小技巧
工作需要,需要注入其他程序监控一些东西,检测到的数据通过WM_COPY 消息发送给显示窗体.(大体是这样的还没定稿) ##1 选择一个框架 ## tombkeeper/Shellcode_Templa ...
- 学会这些 pycharm 编程小技巧,编程效率提升 10 倍
PyCharm 是一款非常强大的编写 python 代码的工具.掌握一些小技巧能成倍的提升写代码的效率,本篇介绍几个经常使用的小技巧. 一.分屏展示 当你想同时看到多个文件的时候: 1.右击标签页: ...
- hadoop编程小技巧(5)---自定义输入文件格式类InputFormat
Hadoop代码测试环境:Hadoop2.4 应用:在对数据需要进行一定条件的过滤和简单处理的时候可以使用自定义输入文件格式类. Hadoop内置的输入文件格式类有: 1)FileInputForma ...
- hadoop编程小技巧(5)---自己定义输入文件格式类InputFormat
Hadoop代码測试环境:Hadoop2.4 应用:在对数据须要进行一定条件的过滤和简单处理的时候能够使用自己定义输入文件格式类. Hadoop内置的输入文件格式类有: 1)FileInputForm ...
- 编程小技巧之 Linux 文本处理命令
合格的程序员都善于使用工具,正所谓君子性非异也,善假于物也.合理的利用 Linux 的命令行工具,可以提高我们的工作效率. 本文简单的介绍三个能使用 Linux 文本处理命令的场景,给大家开阔一下思路 ...
- VC编程小技巧之框架窗口及其他
1.修改主窗口风格 AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名.窗口是叠加型的.可改变窗口大小等.要修改窗口的缺省风格,需要重载CWnd::Pre ...
- Javascript 编程小技巧总结(部分内容借鉴他人)
1 – 使用===,而不是== ==(或!=)操作符在需要的时候会自动执行类型转换.===(或!==)操作不会执行任何转换.它将比较值和类型,而且在速度上也被认为优于==. 2 – 使用闭包实现私有变 ...
- 积累的VC编程小技巧之框架窗口及其他
1.修改主窗口风格 AppWizard生成的应用程序框架的主窗口具有缺省的窗口风格,比如在窗口标题条中自动添加文档名.窗口是叠加型的.可改变窗口大小等.要修改窗口的缺省风格,需要重载CWnd::Pre ...
随机推荐
- css做三角形
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- eclise 部署web工程报 There are no resources that can be added or removed from the server.
该文章转自: http://blog.csdn.net/dw_java08/article/details/7789601 eclise 部署web工程报 There are no resources ...
- HTML 图像<img>
定义和用法: img元素向网页中嵌入一副图像. 请注意:从技术上讲,<img>标签并不会在网页中插入图像,而是从网页上链接图像.<img>标签创建的是被引用图像的占位空间. 属 ...
- Topcoder SRM584 DIV 2 500
#include <set> #include <iostream> #include <string> #include <vector> using ...
- iOS开发Swift篇—(一)简单介绍
iOS开发Swift篇—简单介绍 一.简介 Swift是苹果于2014年WWDC(苹果开发者大会)发布的全新编程语言 Swift在天朝译为“雨燕”,是它的LOGO 是一只燕子,跟Objective-C ...
- Discuz升级提示static/image/postbg/3.jpg下载出现问题的解决办法
discuz2.5升级3.0的时候出现错误.提示static/image/postbg/3.jpg下载出现问题,其解决办法如下 找到 source/admincp/admincp_upgrade.ph ...
- Xib与View关联方法
1,在需要实例的地方 //加载一个uiview的作法 [LotteryInvestigationView *lotteryInvestigationView=[[[NSBundle mainBundl ...
- 爱壁纸 站立会议(六)--Spring阶段总结会议
爱壁纸 站立会议(六)--Spring阶段总结会议 一.会议时间 2014年4月15日 星期三 21:00-21:20 今天是spring阶段最后一天,大家都对这一星期的任务概况做出了总结所以时间稍微 ...
- 转帖不会乱码的,powershell网络蜘蛛
抓取(爬取)网上信息的脚本程序,俗称网络蜘蛛.powershell中自带了这样的两个命令,[Invoke-WebRequest]和[Invoke-RestMethod],但这两个命令有时候会乱码. 现 ...
- php一个简单的计算器
<?php if(isset($_POST['sub'])) { $result = ''; switch($_POST['ysf']) { case '+': $result = $_POST ...