摘要:CString在当今软件设计界里还是小有名气的,说它是MFC中使用的最多的类一点也不过,然而在使用sdk编windows程序的时候,确不能利用CString类,只能用sdk的运行时库,比如strlen,strcpy,strstr等等,本文讨论的是在非mfc程序中使用CString类的方法,算是个引子...
阅读全文
随笔分类 - VC/MFC
摘要:参考链接:http://wenku.baidu.com/view/68fc340c79563c1ec5da714b.html
阅读全文
摘要:最近用WIN32 DLL,为了方便要用到MFC的一些库,又不想转工程,就网上找了很多方法,发现没有详细的介绍,有的也行不通,现在成功在WIN32 DLL中使用了MFC,记录一下以防以后用到忘记一、修改预编译头文件(stdafx.h)在stdafx.h文件中添加下面代码,包含一些MFC的头文件,这些可...
阅读全文
摘要:.如果程序是新建的对话框,要给其添加背景图片的步骤:1)加入消息函数:afx_msg void OnPaint();2)BEGIN_MESSAGE_MAP(QueryDlg, CDialog)ON_WM_PAINT()//add this END_MESSAGE_MAP()3)重写OnPaint函数...
阅读全文
摘要:现在我发现使用Visual Studio的资源编辑器进行编辑资源有着诸多的不便:首先是任何资源的变动一般变动代码,不利于系统维护,其次Visual Studio的资源编辑器的本身的功能有限,也不利于界面美化,三是不利于人员分工,开发人员既要忙实现功能,又要忙准备好的界面素材。对界面实现文件配置化正是解决上面问题的好方法。这次我实现了使用XML文件配置工具栏。这里所谓配置就是工具栏的界面信息如工具栏标题、按钮图片、是否为分隔符都在XML文件保存,程序通过解析XML文件来获取工具栏信息来创建工具栏。这样一旦发现界面不合适可以随时修改配置文件,同时利于人员分工。具体的做法如下:1.在工程的输出目录下
阅读全文
摘要:我们先从简单的开始吧.先分一个类: (一) 非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) (二) 动态载入图片(即只需要在程序中指定图片的路径即可载入) 为方便说明,我们已经建好一个基于对话框的工程,名为Ttest. 对话框类为CTestDlg (一) 非动态载入图片. 方法1.先从最简单的开始,用picture 控件来实现. 步骤: 先在资源里Import一张图片,ID为IDB_BITMAP2 ...
阅读全文
摘要:自从去年年底一次棘手的界面,开始研究用web做界面到现在大约1年,这一年间不是局限在实现层面,也并非一直研究这一个问题,有很多问题其实不是问题,只是自己没有想清楚或者思想没放开。对于一个界面开发人员,想必拉的对话框不少于100个,腻味不必说,光是对话框大小改变导致控件跟着变化都需要一番功夫,加上界面美观,界面的风格统一,界面的灵活多变......,头痛。在对话框里面加载位图,加载gif,超链接......,啊,没法控制了吧!在考虑远点,现在.net3.0技术已经完全打破应用和桌面的界限,我们的界面html资源完全可以放在一个web站点上,这样界面是完全动态的。其间写过2篇这方面的文章,基于vc
阅读全文
摘要:研究zlib库,想实现一个类似winrar功能的小东东,打开winrar界面看它的工具栏比较好看于是动手想做一个,当然资源也使用的是winrar附带的。下面是截图:真彩色(32位)32*32大图标工具栏我得工具栏风格smile风格代码下载感触:软件功能重要,软件的形象也重要。好的UI界面给优美的感觉,小软件要花哨,大软件要庄重。from:http://www.cppblog.com/wlwlxj/archive/2006/11/09/14897.html
阅读全文
摘要:在MFC中隐藏运行界面确实花花点功力。 针对对话框程序,一种不是很好地实现方法是在OnPaint函数中添加如下代码:CWnd::ShowWindow(SW_HIDE);添加后执行会发现屏幕会闪烁一下之后只在后台运行。www.2cto.com 有一种好方法,就是在OnInitDialog(...)中加入以下的代码:SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_HIDEWINDOW);ModifyStyleEx(WS_EX_APPWINDOW,WS_EX_TOOLWINDOW); 这样,运行对话框程序之后,就不会出现对话框界面了。
阅读全文
摘要:BitBlt该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。原型:BOOL BitBlt( HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop);参数: hdcDest:指向目标设备环境的句柄。nXDest、nYDest:指定目标矩形区域左上角的X轴和Y轴逻辑坐标nWidth、nHeight:指定源和目标矩形区域的逻辑宽度和逻辑高度。hdcSrc:指向源设备环境的句柄。nXSrc、nYS
阅读全文
摘要:自己平时收集的一些技巧与心得,这里分享出来,普及一下知识。 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选General,Optimizations选Disable(Debug),Debut info选Program Database。在Link标签中选中Generate debug info复选框。 注:只是一个介乎Debug和Release的中间状态,所有的ASSERT、VERIFY都不起作用,函数调用方式已经是真正的调用,而不查表,但是这种状态下Qui
阅读全文
摘要:先说实在的:最终解决办法是实现IDocHostUIHandler接口,在GetHostInfo方法里解决,但“实现接口”意味着QueryInterface、AddRef、Release三个方法必须实现,所以相关代码是:class CMyWebBrowser : public IDocHostUIHandler{public: CMyWebBrowser() { m_cRef = 0; } virtual ~CMyWebBrowser() {} LONG m_cRef;private: HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid...
阅读全文
摘要:CImageListImageList;//创建一个包含3个24位色32x32图片的ImageList,ILC_MASK的意思是同时创建一个mask,这样在下面指定了背景颜色以后ImageList就可以画透明图像了ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,3,1);//加载位图,IDB_XXXX是一个96x32大小的图片,背景颜色为红色RGB(255,0,0)CBitmapBmp;Bmp.LoadBitmap(IDB_XXXX);//将图片加到ImageList中ImageList.Add(&Bmp,RGB(255,0,0));....//
阅读全文
摘要:对话框中的小红线可以被移动的一、类名是 CBinarizationDlg二、定义两个变量BOOL m_flag;int nPos;在构造函数初始化m_flag = false;nPos=256;三、响应消息函数三个afx_msg void OnPaint();afx_msg void OnLButtonDown(UINT nFlags, CPoint point);afx_msg void OnLButtonUp(UINT nFlags, CPoint point);afx_msg void OnMouseMove(UINT nFl...
阅读全文
摘要:对话框的种类有两种类型的对话框:模态对话框和非模态对话框.模态对话框时指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中的其他任务。非模态对话框显示时,允许转而执行程序中其他任务,而不用关闭这个对话框。创建模态对话框1.在资源编辑器里面新建一个对话框资源,ID采用默认值为:IDD_DIALOG12.双击该对话框,为该对话框添加一个关联的类,命名为CtestDlg3.创建一个菜单项4.为该菜单项添加COMMAND命令消息响应函数,让视类来捕获它5.在实现函数中调用Cdialog类的成员函数:DoModal,添加如下两行代码:CTestDlg dlg;dlg.DoModal
阅读全文
摘要:C方式:写:FILE *pFile = fopen("1.txt", "w");fwrite("http://www.pcslonline.com", 1, strlen("http://www.pcslonline.com"), pFile);fclose(pFile);读:FILE *pFileRead = fopen("1.txt", "r");char *pBuf;fseek(pFileRead, 0, SEEK_END); //把文件指针移动到文件结尾int len
阅读全文
摘要:文件保存://为FALSE,显示保存文件对话框CFileDialog fileDlg(FALSE);fileDlg.m_ofn.lpstrTitle = "我的文件保存对话框";fileDlg.m_ofn.lpstrFilter = "Text Files(*.txt)\0*.txt\0All Files(*.*)\0*.*\0\0";fileDlg.m_ofn.lpstrDefExt = "txt";if (IDOK == fileDlg.DoModal()){CFile file(fileDlg.GetFileName(), CF
阅读全文
摘要:WM_CREATE消息该消息是Windows发送给视图的第一个消息。由于当应用程序框架调用Create函数时该消息就会被发送,而此时窗口创建还未完成,窗口还不可见,因此在控制函数OnCreate内部,不能调用那些依赖于窗口处于完全激活状态的Windows函数。但是我们可以在被重载的OnInitialUpdate函数内调用这些函数。不过必须注意,对于SDI程序,在视图生存期间OnInitialUpdate函数可能会被调用多次。注意:OnInitialUpdate函数是视图窗口完全建立后,在调用OnDraw函数之前第一个被调用的函数,很多初始化工作可以放在这个函数里,因此很重要。WM_CLOSE消
阅读全文
摘要:这里主要用到了一个函数:BOOLSetWindowPos(constCWnd*pWndInsertAfter,intx,inty,intcx,intcy,UINTnFlags);具体用法可以参看MSDNvoid CSYSLoaderDlg::OnCheckFront(){// TODO: Add your control notification handler code hereif (m_checked == TRUE){m_checked = FALSE;SetWindowPos(&CWnd::wndNoTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE)
阅读全文
摘要:这里主要用到一个函数UINT DragQueryFile( HDROP hDrop, UINT iFile, LPTSTR lpszFile, UINT cch); hDrop: HDROP标识符,即响应函数中的hDropInfo参数 iFile: 待查询的文件索引号,从0开始。可以同时拖拽多个文件,因此就需要一个索引号来进行区分。如果该参数为 0xFFFFFFFF,则该函数返回拖拽的文件的个数 lpszFile: 用于存放文件名的缓冲区首地址 cch: 缓冲区长度 返回值:文件名长度接受一个文件的实例:1.新建mfc对话框。2.对话框行为里面,accept fil...
阅读全文