
wtl
ningto.com
个人站点:https://ningto.com
展开
-
WTL自画按钮与文件对话框
//////////////WTL自画按钮/////////////////class CBmpEixtBtn : public CBitmapButtonImpl{public: DECLARE_WND_SUPERCLASS(_T("WTL_BmpBtn"), GetWndClassName()) // added border style (auto3d_single) CBmpEixtBtn(DWORD dwExtendedStyle = BMPBTN_AUTOSIZE /*|原创 2011-01-14 10:11:00 · 1840 阅读 · 0 评论 -
WTL 通过IWebBrowser2接口使WebBrowser控件在自己的窗口打开网页
遇到的问题是这样的, 在WTL中我用了一个WebBrowser控件来显示网页,但是在点击网页中的链接的时候经常跳到其他浏览器上去打开这个链接。我希望的是总是在我的这个控件上显示网页, 不要跳到其他浏览器上去打开。 1.添加IWebBrowser2控件 在创建的时候Select project options下要勾选Enable ActiveX Control Hos原创 2011-06-19 18:54:00 · 8188 阅读 · 4 评论 -
怎样在对话框上做一个“应用”按钮
描述:当用户打开对话框的时候“应用”按钮处于不可用状态(变灰);当用户点击了对话框中的某个控件的时候让其处于可用状态;当用户点击了“应用”按钮后让其变灰;1.定义两个消息:#define WM_APPLY_TRUE WM_USER + 10 // 使原创 2011-08-30 17:39:09 · 1377 阅读 · 0 评论 -
WTL 给一个对话框添加垂直滚动条
1.消息映射宏: MESSAGE_HANDLER(WM_VSCROLL, OnVscroll) MESSAGE_HANDLER(WM_SIZE, OnSize) MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel)2.在OnInitDialog里获取窗口的实际大小,以及初始化滚动条位置: ::GetWindowRect(m_hWnd, &m_wndRect); ScreenToClient(&m_wndRect); m_nScrollPos =原创 2011-05-08 21:41:00 · 3007 阅读 · 1 评论 -
WTL CHyperLink类的用法
1.包含atlctrlx.h头文件;2.声明一个CHyperLink类的变量:CHyperLink m_linkIntro; 3.在OnInitDialog函数里: m_linkIntro.SubclassWindow(GetDlgItem(IDC_STATIC_LINK)); DWORD linkStyle = m_linkIntro.GetHyperLinkExtendedStyle() | HLINK_COMMANDBUTTON | HLINK_NOTIFYBUTTON; m_link原创 2011-05-08 20:55:00 · 2442 阅读 · 1 评论 -
WTL对话框应用程序常用头文件
在用WTL的时候经常会遇到因为某某头文件没有包含而报错的问题,现将我常用的几个头文件列出来:#define _WTL_USE_CSTRING // 提前声明CString类#include // 基本的ATL类#include // 基本的WTL类extern CAppModule _Module; // WTL派生的CComModule版本#include // ATL窗口类#include // WTL数据交换类#incl原创 2011-05-06 23:05:00 · 1579 阅读 · 0 评论 -
实现无标题栏对话框的拖动
目前,很多基于对话框的应用程序中对话框都是不带框架的,也就是说对话框没有标题栏。众所周知,窗口的移动都是通过鼠标拖动窗口的标题栏来实现的,那么现在应用程序中的对话框没有了标题栏,用户如何移动对话框呢?本实例针对这个问题提出解决的办法。一、实现方法 解决无标题栏窗口的拖动问题有两种方案,一种方案是使用常规思路来处理鼠标拖拽事件,当窗口获得WM_LBUTTONDOWN(OnLButtonDo转载 2011-06-23 17:21:00 · 2328 阅读 · 0 评论 -
WTL IWebBrowser2调用网页中javascript函数
1.简单的含有js的网页: <!-- function test(){ document.write("hello world!"); } function test2(){ alert("hello, world"); } function link(){ window.location.href = "http://www.baidu.com";原创 2011-06-20 18:02:00 · 4843 阅读 · 2 评论 -
WTL按钮重绘
下面的类不是我写的,我只简单介绍一下用法:1>将AtlBitmapSkinButton.h头文件导入到工程中;2>添加#include "AtlBitmapSkinButton.h"头文件;3>添加按钮控件IDC_BUTTON1,并将其Ower Draw属性改为True;4>在BEGIN_MSG_MAP(CDialog)......REFLECT_NOTIFICATIONS()END_MSG_MAP()5>CAtlBitmapButton m_button1;6>在OnInitDialog里面添加如下代码:原创 2011-05-09 18:35:00 · 2064 阅读 · 0 评论 -
WTL多页面显示实现方法
这里假设一个主对话框CMainDlg有三个页面CPageFirstDlg、CPageSecondDlg、CPageThirdDlg;1.三个页面属性Style:Child, Border:None;2.成员变量:CPageFirstDlg m_pageFirstDlg;CPageSecondDlg m_pageSecondDlg;CPageThirdDlg m_pageThirdDlg; 3.设置它们的显示区域:m_rcChildRect;4.创建页面:HWND m_hPageFirst = m_p原创 2011-05-08 22:32:00 · 1122 阅读 · 0 评论 -
WTL自定义的常用类
#ifndef __BITMAPBKGND_H__#define __BITMAPBKGND_H__template class CBitmapBkgnd : public CMessageMap{public: CBitmapBkgnd() { m_Bitmap.LoadBitmap(uBitmapID); } ~CBitmapBkgnd() { m_Bitmap.DeleteObject(); } BEGIN_MSG_MAP(CPaintBkgnd) MESSAGE原创 2011-05-08 20:34:00 · 2416 阅读 · 0 评论 -
WTL 一个很好用的ToolTip
找到了一个老外写的很好用的ToolTip, 但是有两个小问题,终于解决了,拿出来和大家分享下。问题1: 有时候出现这样的情况,鼠标划上去后立马弹出提示,然后消失,最后又弹出一次;问题2: 提示框弹出后默认只显示5秒钟就消失了, 这样时间太短了,提示的内容还没看完就消失了。解决方法:问题1:m_TT.SetDelayTime(TTDT_RESHOW, 1000);//鼠标划上过1秒后弹出提示;问题2:m_TT.SetDelayTime(TTDT_AUTOPOP, 1原创 2011-03-13 19:55:00 · 3459 阅读 · 4 评论 -
WTL CComboBox 增加所有字体名
今天为CComboBox控件增加系统中的字体名折腾了半天, 记录下防止再犯, 或许以后用不到。1.定义一个CComboBox的对象:CComboBox m_cbChiFont;2.给上面的对象关联一个资源ID:m_cbChiFont.Attach(GetDlgItem(IDC_CHI_FONT));3.关键地方来了, 首先定义函数所需要的参数, 然后调用EnumFontFamiliesEx(...), 通过这个函数的回调函数来获取字体名,注意回调函数要在类外提前声明, 实现也要在类外,不然会报错,代原创 2011-03-10 23:32:00 · 2257 阅读 · 2 评论 -
WTL安装到VS2008和VS2010中
WTL是什么就不说了, 今天安装的时候遇到了一些小问题, 所以记录下。WTL8.0只支持VS2005, 不过只需要修改几个小地方就可以在VS2008下用了。可以下载WTL8.1就不需要修改了, 它是支持VS2008的。1.直接解压在AppWiz文件下有个setup90.js直接运行就可以了,但是如果你的js文件双击没有运行而是用某个软件打开的话, 可以打开注册表HKEY_CLASS原创 2011-02-26 10:35:00 · 5139 阅读 · 0 评论