共 9 篇文章 |
|
WTL 的属性表类。如果你向一个已经创建的属性表添加属性页或者向另一个不在控制的属性表添加属性页(例如,处理系统Shell扩展的属性表),那就只需要调用Create()函数。class CAppPropertySheet : public CPropertySheetImpl<CAppPropertySheet>{//... static int CALLBACK PropSheetCallback(HWND hWnd, UINT uMsg, LPARAM lParam) { int ... 阅848 转10 评0 公众公开 05-10-09 10:49 |
WTL 的分隔窗口。HWND Create( HWND hWndParent, LPCTSTR lpstrTitle = NULL, DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN, DWORD dwExStyle = 0, UINT nID = 0, LPVOID lpCreateParam = NULL)HWND Create( HWND hWndParent, UINT uTitleID, DWORD dwStyle = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CL... 阅873 转10 评0 公众公开 05-10-09 10:48 |
VT_EMPTY: voidVT_BSTR: BSTR 格式的字符串VT_I4: 4字节有符号整数,用于long类型的参数VT_DISPATCH: IDispatch*VT_VARIANT>: VARIANTVT_BOOL: VARIANT_BOOL (允许的取值是VARIANT_TRUE和VARIANT_FALSE)_ATL_FUNC_INFO BeforeNavigate2Info = { CC_STDCALL, VT_EMPTY, 7, { VT_DISPATCH, VT_VARIANT|VT_BYREF, VT_VARIANT|VT_BYREF, VT_VARI... 阅2068 转11 评0 公众公开 05-10-09 10:47 |
上面的例子中,我们自己的类实现DrawItem()函数,当有WM_DRAWITEM或OCM_DRAWITEM消息被链入COwnerDraw时,这个函数就会被调用。BEGIN_MSG_MAP_EX(CMainDlg) MSG_WM_INITDIALOG(OnInitDialog) COMMAND_ID_HANDLER_EX(IDOK, OnOK) COMMAND_ID_HANDLER_EX(IDCANCEL, OnCancel) COMMAND_ID_HANDLER_EX(IDC_ALYSON_BTN, OnAlysonODBtn) END_MSG_MAP(... 阅1806 转12 评0 公众公开 05-10-09 10:46 |
BEGIN_DDX_MAP(CMainDlg) DDX_CONTROL(IDC_EDIT, m_wndEdit) END_DDX_MAP() protected: CContainedWindow m_wndOKBtn, m_wndExitBtn;在CMainDlg中添加几个变量,演示DDX的使用方法。BEGIN_DDX_MAP(CMainDlg) DDX_CONTROL(IDC_EDIT, m_wndEdit) DDX_TEXT(IDC_EDIT, m_sEditContents) DDX_INT(IDC_EDIT, m_nEditNumber) DDX_CHECK(IDC_SHOW_MSG, ... 阅3354 转12 评0 公众公开 05-10-09 10:45 |
工具条按钮的UI状态更新。BEGIN_UPDATE_UI_MAP(CMainFrame) UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP | UPDUI_TOOLBAR) UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP | UPDUI_TOOLBAR)END_UPDATE_UI_MAP()使一个工具条支持UI状态更新。CMainFrame::OnViewToolBar()函数也有些不同,它只隐藏Rebar上工具条所在的条位而不是隐藏... 阅1116 转10 评0 公众公开 05-10-09 10:45 |
class CMyWindow : public CFrameWindowImpl<CMyWindow>{public: BEGIN_MSG_MAP_EX(CMyWindow) MSG_WM_CREATE(OnCreate) MSG_WM_DESTROY(OnDestroy) MSG_WM_TIMER(OnTimer) MSG_WM_ERASEBKGND(OnEraseBkgnd) CHAIN_MSG_MAP(CFrameWindowImpl<CMyWindow>) END_MSG_MAP() LRESULT OnEraseBkgnd ( HDC hdc ) { CDCHandle dc(hdc);CHAI... 阅1525 转10 评0 公众公开 05-10-09 10:44 |
MFC程序员的WTL指南: 中文版序言。是的,我一直使用MFC,但我对MFC已经越来越厌倦了。我几乎不费吹灰之力就将以前写的一个MFC程序用WTL改写了,使用静态链接的WTL程序比使用动态链接的MFC程序还要小,资源占用只有MFC程序的一半。如果你是个对另类事物充满热情的程序员,你不能不研究WTL,它真的是一座宝藏最后用我的朋友对我的翻译文章的评价... 阅957 转13 评0 公众公开 05-10-09 10:40 |