WTL 学习笔记 -- 几则技巧
来源:互联网 发布:淘宝开店经验分享 编辑:程序博客网 时间:2024/05/20 11:31
导读:
WTL 学习笔记-- 几则技巧
l 在WTL项目中插入ATL控件。有点不明白,WTL本身就是扩展ATL,但WTL向导产生的工程,竟不能使用ATL控件。还得手工加一些东西来欺骗VS6,VS6才让插入ATL控件。
1. 在工程增加一个Atl.idl文件,并排除在编译之外。
library Atl { };
2. 在源文件加入一个宏。
#if 0
#include
BEGIN_OBJECT_MAP(ObjectMap) END_OBJECT_MAP()
#endif
l 限制窗口的大小。
MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)
LRESULTOnGetMinMaxInfo(UINT, WPARAM, LPARAMlParam, BOOL&)
{ // load size structure with lParam values
LPMINMAXINFOlpMMI= (LPMINMAXINFO)lParam
// change the values in the size structure to desired values
lpMMI->ptMinTrackSize.x= 200; // min width
lpMMI->ptMinTrackSize.y= 150; // min height
lpMMI->ptMaxTrackSize.x= 600; // max width
lpMMI->ptMaxTrackSize.y= 450; // max height
return0;
}
l 修改对话框和背景的颜色。
MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor)
MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor)
LRESULTOnCtrlColor(UINT, WPARAM, LPARAM, BOOL&)
{ // set background mode and text color
SetBkMode((HDC)wParam, TRANSPARENT); // transparent background
SetTextColor((HDC)wParam, RGB(255, 255, 255)); // white text
return(LRESULT)AtlGetStockBrush(BLACK_BRUSH);
}
l 让主窗口打开时就最大化。
wndMain.ShowWindow(nCmdShow| SW_SHOWMAXIMIZED);
l 让视图打开时就最大化。
LRESULTOnFileNew(WORD/*wNotifyCode*/, WORD/*wID*/, HWND/*hWndCtl*/, BOOL&/*bHandled*/)
{
CChildFrame* pChild= newCChildFrame
pChild->CreateEx(m_hWndClient);
pChild->ShowWindow(SW_SHOWMAXIMIZED);
// TODO: add code to initialize document
return0;
}
l 渐变颜色填充。
RECTrect
GetClientRect(&rect);
TRIVERTEXtv[] =
{
{ rect.left, rect.top, 0xff00 },
{ rect.right, rect.top+ m_cxyHeader, 0, 0xff00 }
};
GRADIENT_RECTgr= { 0, 1 };
dc.GradientFill( tv, 2, &gr, 1, GRADIENT_FILL_RECT_H);
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=662330
本文转自
http://blog.csdn.net/absurd/archive/2006/04/13/662330.aspx
WTL 学习笔记-- 几则技巧
l 在WTL项目中插入ATL控件。有点不明白,WTL本身就是扩展ATL,但WTL向导产生的工程,竟不能使用ATL控件。还得手工加一些东西来欺骗VS6,VS6才让插入ATL控件。
1. 在工程增加一个Atl.idl文件,并排除在编译之外。
library Atl { };
2. 在源文件加入一个宏。
#if 0
#include
BEGIN_OBJECT_MAP(ObjectMap) END_OBJECT_MAP()
#endif
l 限制窗口的大小。
MESSAGE_HANDLER(WM_GETMINMAXINFO, OnGetMinMaxInfo)
LRESULTOnGetMinMaxInfo(UINT, WPARAM, LPARAMlParam, BOOL&)
{ // load size structure with lParam values
LPMINMAXINFOlpMMI= (LPMINMAXINFO)lParam
// change the values in the size structure to desired values
lpMMI->ptMinTrackSize.x= 200; // min width
lpMMI->ptMinTrackSize.y= 150; // min height
lpMMI->ptMaxTrackSize.x= 600; // max width
lpMMI->ptMaxTrackSize.y= 450; // max height
return0;
}
l 修改对话框和背景的颜色。
MESSAGE_HANDLER(WM_CTLCOLORDLG, OnCtrlColor)
MESSAGE_HANDLER(WM_CTLCOLORSTATIC, OnCtrlColor)
LRESULTOnCtrlColor(UINT, WPARAM, LPARAM, BOOL&)
{ // set background mode and text color
SetBkMode((HDC)wParam, TRANSPARENT); // transparent background
SetTextColor((HDC)wParam, RGB(255, 255, 255)); // white text
return(LRESULT)AtlGetStockBrush(BLACK_BRUSH);
}
l 让主窗口打开时就最大化。
wndMain.ShowWindow(nCmdShow| SW_SHOWMAXIMIZED);
l 让视图打开时就最大化。
LRESULTOnFileNew(WORD/*wNotifyCode*/, WORD/*wID*/, HWND/*hWndCtl*/, BOOL&/*bHandled*/)
{
CChildFrame* pChild= newCChildFrame
pChild->CreateEx(m_hWndClient);
pChild->ShowWindow(SW_SHOWMAXIMIZED);
// TODO: add code to initialize document
return0;
}
l 渐变颜色填充。
RECTrect
GetClientRect(&rect);
TRIVERTEXtv[] =
{
{ rect.left, rect.top, 0xff00 },
{ rect.right, rect.top+ m_cxyHeader, 0, 0xff00 }
};
GRADIENT_RECTgr= { 0, 1 };
dc.GradientFill( tv, 2, &gr, 1, GRADIENT_FILL_RECT_H);
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=662330
本文转自
http://blog.csdn.net/absurd/archive/2006/04/13/662330.aspx
- WTL 学习笔记 -- 几则技巧
- WTL 学习笔记 -- 几则技巧
- WTL 学习笔记 -- 几则技巧
- WTL 学习笔记 -- 几则技巧
- WTL学习笔记(1)
- WTL 学习笔记 -- ResizeDialog
- WTL 学习笔记 -- CSplitterWindow
- WTL 学习笔记 -- ActiveX
- WTL 学习笔记 -- mru
- WTL 学习笔记 -- ActiveX
- WTL 学习笔记 -- ResizeDialog
- WTL 学习笔记 -- CSplitterWindow
- WTL 学习笔记 -- ResizeDialog
- WTL 学习笔记 -- CSplitterWindow
- WTL 学习笔记 -- ActiveX
- WTL学习笔记(1)
- WTL学习笔记(转)
- WTL学习笔记0
- 我的第一个DirectX程序
- Gtk-minimo中的几个BUG
- WTL 学习笔记 -- ActiveX
- 求前n个素数之和
- 细读《Effective C++》之二
- WTL 学习笔记 -- 几则技巧
- SQL语句 - 删除表中指定列重复的纪录
- 【转】OllyDbg中常用断点
- C#的String.Format格式化举例(转)
- GoogleDesktop插件开发 – 序
- GoogleDesktop插件开发 – 建立开发环境
- .net(C#)中String.Format如何使用
- C++ effective
- 实现COM消息广播