界面设计
zyrr159487
这个作者很懒,什么都没留下…
展开
-
MFC框架中对最近文件列表的支持
MFC建立的标准框架程序中有记录最近操作文件的能力,这些最近文件的路径被记录到注册表,在程序运行时,又将添加到文件菜单中。 在CWinApp中有个 CRecentFileList* m_pRecentFileList;指针管理这些信息。 以下对此过程进行分析,采用类似的方法,可以保存其他一些固定条数的最近数据。 1.CRecentFileList对象的建立,记录读入、记录保存、对象销毁转载 2011-12-05 13:45:21 · 1581 阅读 · 0 评论 -
Visual studio 2008/2010 MFC程序Menu、Toolbar字体偏小解决办法
首先,这是一个MFC的Bughttp://connect.microsoft.com/VisualStudio/feedback/details/505466/mfc-visual-style-font-size-too-small-to-display-chinese-character-clearly-on-windows-xp MFC visual style font si转载 2011-12-12 11:37:36 · 1475 阅读 · 0 评论 -
VC - MFC鼠标拖动效果编程
要实现的功能实际上很简单,一般人都用到见惯不惯了,但是实现起来还是有点意思的。问题详细描述:(三步)单击鼠标左键时记录下单击点;鼠标拖动时,显示的矩形框能够动态的跟随显示;释放鼠标左键时擦出矩形框。这样分析其实问题就简单一些了,只需要对鼠标的三个事件进行相应就可以了。代码主要在三处地方修改了:第一处:VIEW类中设置私有变量(VIEW类.h文件中)priva转载 2011-12-12 11:48:52 · 3903 阅读 · 0 评论 -
CComboBox控件的使用
一、如何添加/删除Combo Box内容1. 在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。2. 在程序初始化时动态添加 如: //控件内容初始化 CString strTemp; ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetConten转载 2011-12-20 14:05:38 · 940 阅读 · 0 评论 -
Hot Key Control快捷键控件
hot key control用法:A "hot key control" is a window that enables the user to create a hot key. A "hot key" is a key combination that the user can press to perform an action quickly. (For example, a转载 2011-12-21 13:27:03 · 3856 阅读 · 0 评论 -
一个简单字体察看器的实现
通过本文,希望能学到一点有关windows各个组件的消息传递的知识。学习如何建立可用字体的列表,学会如何指定使用的字体,如何动态改变字体。用到的函数:EnumFontFamiliesEx。在MSDN中是这样写的:int EnumFontFamiliesEx( HDC hdc, // handle to DC LPLOGFONT转载 2011-11-30 08:49:14 · 626 阅读 · 0 评论 -
在对话框中添加工具栏的两种方法
方法①用ICO组成的工具栏在用VC做信息管理系统时,我们有时会做基于对话框的程序,在对话框中添加工具栏用以这种方法,我们可以随心添加自己想要的Ico图标到工具栏上,不受添加一个Bmp图片时想要图标没有不想要的却很多,难以找到合适的Bmp图片以对应相应的工具栏按钮从而形象的表达按钮的功能.当然能过别的图片处理工具编辑Bmp图片后也能达到程序需求,但不如这种方法方便. 先找到自己想要的I转载 2011-12-20 16:43:54 · 1283 阅读 · 0 评论 -
创建启动画面相关问题
1 如何创建启动画面始终置顶不必担心被切换 void CBSplashWindow::CreateSplash(){ //Create Splash Window CWnd::CreateEx(WS_EX_TOPMOST, AfxRegisterWndClass(0), NULL, WS_POPUP, 0, 0, m_bmBitmap.bmWidth, //原创 2011-12-27 13:42:52 · 515 阅读 · 0 评论 -
关于VS2008 SP1和 VS2010备忘
1 调用VS2008的新控件,但是又没有用2010的框架,则需要在析构时加入以下,否则会内存泄露CMFCVisualManager::DestroyInstance(TRUE);2 VS2010绘图CDrawingManager3 VS2005转换成VS2010时提示类未定义在 stdafx.h中加入 #include原创 2011-12-27 10:42:59 · 580 阅读 · 0 评论 -
标题栏的帮助功能
单击问号,直接弹出自定义的帮助对话框1修改标题栏风格ModifyStyleEx(0, WS_EX_CONTEXTHELP);2响应函数void CBGridDotDlg::OnNcLButtonDown(UINT nHitTest, CPoint point){ //单击的是问号 if (nHitTest == HTHELP) { CBParamHelpDlg d原创 2012-01-10 11:40:13 · 1243 阅读 · 0 评论 -
目录选择对话框、文件打开或保存对话框、字体对话框和颜色对话框
1 选择目录对话框例子1CString GetPath(){ CString strPath = ""; BROWSEINFO bInfo; ZeroMemory(&bInfo, sizeof(bInfo)); bInfo.hwndOwner = m_hWnd; bInfo.lpszTitle = _T("请选择路径: "); bInfo.ulFlags = BIF_转载 2011-11-25 13:16:46 · 887 阅读 · 0 评论 -
对话框最大化问题
ShowWindow(SW_SHOWMAXIMIZED);//窗口最大化问题:在写程序时,如果包含了标题栏,但是没有包含最大化按钮或者最小话按钮。那么人工用ShowWindow(SW_MAXIMIZE),窗口会盖住任务栏,并且窗口最大化后还可以拖动!解决方法:1 窗口最大化可以拖动的问题就是在最大化时不让其拖动, 只要响应WM_NCLBUTTONDOWN时判断是否最大化 I原创 2012-01-10 14:13:51 · 1462 阅读 · 1 评论 -
SetWindowRgn,可用于创建不规则窗口
函数功能描述:设置窗口区域.函数原型int SetWindowRgn( HWND hWnd, // 要设置其区域的窗口句柄 HRGN hRgn, // 区域句柄 BOOL bRedraw // 重画标志);参数hWnd要设置其区域的窗口的句柄.hRgn区域的句柄.该函数把窗口的区域设置成由此参数指定的区域.系统将仅绘制窗转载 2011-12-12 11:34:29 · 1131 阅读 · 0 评论 -
MFC并列显示多个工具栏
创建两个工具栏合并时第二个工具栏总是跑回下一行,终于折腾到放一行了,呵呵。。。第一个工具栏:if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_FLOAT_MULTI | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_F转载 2011-12-12 11:32:21 · 3041 阅读 · 0 评论 -
ListCtrl鼠标拖动Item
//上移void CBOrderColorDLg::OnBnClickedMoveUp(){ SetFocus(); int iCurIndex = m_iColorIndex;//当前行索引 int iPreIndex = iCurIndex - 1; //上一行索引 if(iPreIndex < 0) return;原创 2011-12-05 13:25:41 · 2148 阅读 · 1 评论 -
MFC-文档标题、主窗口标题、子窗口标题的改变
文档标题在是由工程中相应的文档类所控制的,我们可做如下实验。运行上面AppWizard生成的程序SDITitle,一·对单文档接口(SDI)类型窗口标题的改变 1·文档标题的改变 选择选单中的“文件”“打开”选 项,打开“SDITitile.h”文件,则标题栏变成“SDITitle.h - SDITitle”。这一切动作都是MFC类自动进行的。了解这一点,我们可在相应的文转载 2011-11-29 16:47:23 · 2940 阅读 · 0 评论 -
对话框最大化时,控件也随比例最大化或者还原
1. 在oninitdlg中 计算出当前对话框的大小与最大化后大小,注意要用float值,不然误差很大.CRect rect; ::GetWindowRect(m_hWnd,rect); ScreenToClient(rect); m_nDlgWidth = rect.right - rect.left; m_nDlgHeight = rect.bottom - rect.top;/转载 2011-11-25 10:56:13 · 942 阅读 · 0 评论 -
VC6风格转XP风格界面的两种方法
方法1 无负担的manifest文件关于让自己的程序界面实现XP风格这个问题,在网上的讨论很多,大多数的作法都是写一个.manifest文件,然后将文件名改一下,比如.exe文件为test.exe,就将这个.manifest文件改名成test.exe.manifest,并将其和test.exe放在同一个目录里,这样test.exe在XP或2003(必须启动Themes服务)下运行时就会呈现XP转载 2011-11-24 14:45:55 · 2690 阅读 · 0 评论 -
工具栏停靠控制详述
在VC中开发大型应用程序时,工具条通常是程序中必不可少的重要功能因素,其中工具条在整个窗口中的停靠位置尤其关键,它直接影响到程序界面的外观形象。下面针对笔者实际开发中各类工具条停靠位置的控制过程,详细阐述其实现技巧。 一、标准工具条停靠位置的控制 VC5 应用程序向导生成的框架代码中,都具有普通工具条的控制方法。正常情况下工具条类CToolBar是控制条类CContro转载 2011-11-24 10:37:07 · 1029 阅读 · 0 评论 -
如何放大ICON至48*48
如何将ICON放大至48*48显示,系统默认ICON最高是32*32答:所以不能用LoadIcon载入,因为载入后自动存为32*32这种系统默认应该用LoadImage();LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_ICON1), IMAGE_ICON, 32, 32, 0);然后用DrawIconEx(),而不能原创 2011-11-03 14:41:22 · 1751 阅读 · 0 评论 -
VC中使用ListCtrl经验总结
ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象, 然后这里我们的ListCtrl都是report形式,至于其他的如什么大图标,小图标的暂时不讲,毕竟report是大众话的使用。其次,我们这里用条款一,条款二 来描述第一点,第二点,这个是参照《E转载 2011-12-07 11:47:59 · 514 阅读 · 0 评论 -
创建自定义的工具栏
if(!m_wndDlgBar.Create(this, IDD_MYBAR, WS_CHILD|CBRS_GRIPPER|CBRS_BOTTOM|CBRS_TOOLTIPS|CBRS_FLYBY,IDD_MYBAR)) { return -1; } EnableDocking(CBRS_ALIGN_ANY); m_wndDlg原创 2011-11-04 10:28:22 · 700 阅读 · 0 评论 -
VC/MFC按钮(CButton)控件
1如何在按钮控件上显示图片 首先确定你要显示在按钮控件的图片类型是什么,这里我是ico图标,由于要在按钮里显示ico图标,所以要把按钮控件的属性改一下,方法是右击按钮控件,选择属性,单击样式选项卡,把图标这一项给勾上。然后为这个按钮控件关联一个变量如:m_Quit,类型是"Control",以后不做说明的话,类型都是"Control".按钮控件类(CButton)类转载 2011-12-19 16:45:11 · 4248 阅读 · 0 评论 -
界面设计技巧
1 截获键盘消息的函数BOOL CBApp::PreTranslateMessage(MSG* pMsg) { // TODO: Add your specialized code here and/or call the base class CBDevice* pDevice = m_pSetting->getCurrentDevice(); if(pDevice !=原创 2011-12-30 16:09:28 · 568 阅读 · 0 评论