界面编程
文章平均质量分 78
abesky
孤家寡人,很囧、很穷、很雷、很惨、很霉、很烦、很累、很躁、很苦、很酸
展开
-
创建一不规则窗口
原方法:HRGN CRegionCreator::CreateRegionFromBitmap(HBITMAP hBitmap, COLORREF transparentColor)...{ HRGN hRgn = NULL; HRGN hRgn1 = NULL; // Check for valid bitmap handle if ( hBitmap != NU转载 2007-01-07 22:19:00 · 1014 阅读 · 0 评论 -
VC2008FeaturePack SDI/MDI项目的字体设置
使用向导自动生成vs或者office样式的工程后发现字体不是很合适,如何更改呢?我们可以修改afxglobals.h头文件中AFX_GLOBAL_DATA这个结构的字体数据,当然其中也包含了所有的全局颜色 void ChangeFont(){ LOGFONT lf; afxGlobalData.fontRegular.GetLogFont(&lf); afxGlobal原创 2009-08-14 16:02:00 · 2104 阅读 · 5 评论 -
关于ActiveX Control开发总结 MFC篇
为了方便的移植及重用自己编写的控件,这时候我们就要用到ActiveX控件技术来封装自己的控件类。封装一个ActiveX控件需要考虑:1、提供用户设置的属性。2、提供用户使用的接口函数。3、控件事件的通知。4、控件响应用户的操作。5、控件的绘制。6、异常处理。 添加用户设置属性方法: 打开类视图展开XXlib选择控件接口右键菜单添加-〉添加属性打开属原创 2009-08-14 10:06:00 · 3501 阅读 · 0 评论 -
BCGControlBar&VC2008FeaturePack 在模块中弹出界面库菜单及在菜单中添加图标的简单方法
首先怎样弹出界面库的菜单呢?首先模块向主窗口发出弹出菜单请求,然后在主程序中收到请求后向发出请求模块询问菜单,模块加载菜单返回然后由主窗口调用函数弹出菜单。//定义查询菜单的消息const UINT WM_GETCONTEXTMENU = ::RegisterWindowMessage(_T("GetContextMenu"));//模块需要弹出菜单时向主窗口发送请求::原创 2009-08-14 15:23:00 · 3392 阅读 · 2 评论 -
平台插件学习
最近因开发需要拜读了网上几篇关于平台与插件的大作,对其思想有了初步的了解。归纳一下平台主要需要解决以下几个问题:1、定义好插件需要实现的接口;2、枚举加载计算机中可用于本平台的插件;3、加载可用插件并动态加载插件的菜单及工具栏,或其他GUI资源;4、管理动态菜单及工具栏的命令调用,及其他GUI的右键菜单等等命令调用;5、平台与插件的数据交互;6、插件卸载等等;下面细原创 2008-01-02 22:53:00 · 2172 阅读 · 2 评论 -
从资源中加载特殊资源方法
在资源中保存了GIF,PNG,ANI等等资源时怎样加载呢?可以使用如下方法加载动态图标(光标)的方法注意再将光标导入到资源时候资源类型输入ANI// 在一般mfc程序中使用//HINSTANCE hInstance = AfxGetInstanceHandle();// 如果是atlcom组件中使用//HINSTANCE hInstance = _AtlBaseModule.G原创 2007-10-13 10:36:00 · 2203 阅读 · 4 评论 -
在mfc的sdi/mdi程序任意视图view内创建可停靠及浮动的工具栏方法
第一种方式是在此view的对应doc模板CFrameWnd子类的OnCreate函数中添加创建代码由于mdi的模板多个view可能是公用一个CFrameWnd子类。此方法控制不太灵活但是简单第二种方式即在view的OnCreate函数中创建int CXxxView::OnCreate(LPCREATESTRUCT lpCreateStruct)...{ if (CView::O原创 2007-10-13 10:10:00 · 6306 阅读 · 3 评论 -
带超链接的循环滚动静态控件
滚动文字实现已有很多方法这个控件对 以前的滚动控件进行扩展,能够循环滚动消息,在鼠标停留在消息上时变为超链接代码如下:#pragma once#include map>#include vector>class CScrollStatic : public CStatic...{public: CScrollStatic() : m_iExtend(0)原创 2007-10-26 11:15:00 · 702 阅读 · 0 评论 -
界面编程学习-在状态栏上滚动文字
找到状态栏的特定位置创建一个静态框:CWnd * pWnd = CWnd::FromHandle(hWnd); // 取主窗口CStatusBar * pStatusBar = (CStatusBar*)pWnd->GetDescendantWindow(AFX_IDW_STATUS_BAR);CStatusBarCtrl * pStatusCtr = &pStatusBar->GetSt原创 2007-03-26 17:09:00 · 1069 阅读 · 0 评论 -
界面编程学习-自动伸缩的对话框
模仿一些杀毒软件的提示对话框void CDlgNewMsg::OnTimer(UINT nIDEvent)...{ //获得此时窗口的实际大小 CRect dlgRect; GetWindowRect(dlgRect); //获得桌面的大小 CRect desktopRect; GetDesktopWindow()->GetWindowRect(desk原创 2007-03-26 15:06:00 · 808 阅读 · 0 评论 -
关于在COM组件中 ATL/WTL使用webbroswer控件无法响应Ctrl+A Ctrl+V Ctrl+C及回车键的处理
如果在COM组件中ATL/WTL窗口中使用了webbroswer控件,这时默认情况下是无法响应Ctrl+A Ctrl+V Ctrl+C等快捷键的so我以CDialogImpl类为例子说明首先创建webbroswer控件使用一个包装类 class CHTMLWin : public CWindowImpl{::ATL::CComPtr m_pBrowserApp;原创 2010-03-18 11:20:00 · 3203 阅读 · 1 评论