现在位置: 首页 > 所有2012年发表的文章
2012-08-21 05:51 工业·编程 ⁄ 共 2462字 暂无评论
说明:将《Head First设计模式》中策略模式,用C++来实现。 飞翔行为FlyBehavior.h: #pragma once #include <iostream> using namespace std; class IFlyBehavior { public:     virtual ~IFlyBehavior(){}     virtual void Fly() = 0; }; class CFlyWithWings : public IFlyBehavior { public:     void Fly()     {  ...
阅读全文
2012-08-21 05:48 工业·编程 ⁄ 共 251字 暂无评论
vs2005引用lib文件有两种方式。 其一:通过#param comment(lib, 'PublicFunc.lib')方式引用。 其二:通过设置工程属性,Configuration Properties->Linker->Input->Additional Dependencies中设置PublicFunc.lib,如图1。 在实际工作中,方式一有所不便。因为用工具编译所有工程文件时,需解析模块间的依赖关系,从而决定编译模块的顺序。 方式一会因PublicFunc模块后编译导致该编译不通过,推荐使用方式二。
阅读全文
2012-08-21 05:45 工业·编程 ⁄ 共 4622字 暂无评论
    MFC树控件未提供节点后加图标的方法,需要自己重绘来实现。主要方法是,响应NM_CUSTOMDRAW消息,在每个节点后添加自己要展示的图标。关于NM_CUSTOMDRAW消息的说明,见http://msdn.microsoft.com/en-us/library/ms833744.aspx。 显示效果,如下图。 1、实现源码 重绘树控件类CMyTreeCtrl。 MyTreeCtrl.h #pragma once //节点信息 struct NodeInfo {     NodeInfo()   &...
阅读全文
2012-08-21 05:42 工业·编程 ⁄ 共 5923字 暂无评论
1.下面请看几种枚举窗口的方式 一:利用GetWindow(ParentWnd, GW_CHILD); void FindAllChildWnd(HWND ParentWnd) { HWND hChild = ::GetWindow(ParentWnd, GW_CHILD); for(; hChild!=NULL ; hChild=::GetWindow(hChild,GW_HWNDNEXT)) {   TCHAR WindowText[30]={0};   ::SendMessage(hChild,WM_GETTEXT,(WPARAM)(sizeof(WindowText)/sizeof(TCHAR)),(LPARAM)WindowText);   TCHAR Class...
阅读全文
一.前言: 封装了一个类,可以很简单的使窗口移动时具有自动吸附停靠在屏幕边缘或自定窗口边缘的功能。 二.使用方法: 0.添加MoveWnd.h 和 MoveWnd.cpp 到你的工程 1.左键按下时(OnNcLButtonDown)调用 1.左键按下时调用: PrepareMoveWnd的第二个参数是想停靠的目标窗口 void CMyDlg::OnLButtonDown(UINT nFlags, CPoint point) {   CMoveWnd::PrepareMoveWnd(m_hWnd,::GetParent(m_hWnd));   CDialog...
阅读全文
2012-08-21 05:35 工业·编程 ⁄ 共 1260字 暂无评论
o、前言     初学动态链接库时,总被许多概念搞得一塌糊涂,比如“隐式链接”,“动态加载”,lib静态库和lib导入库。虽然会用,但概念还是很模糊的。后来了解了编译和链接的一些原理,总算有一个比较清晰的理解,整理出来和大家分享。若有不对之处,还望斧正!谢谢! 五.总结 1.头文件并不参加链接和编译。编译器第一步要做的就是简单的把头文件在包含它的源文件中展开。不知你是否能理解这句话。也就是头...
阅读全文
2012-08-21 05:31 工业·编程 ⁄ 共 9552字 暂无评论
    在网上搜索很多关于拖动ClistCtrl中一项的文章,找到了一些,但却编译不了。有个例子不错,但总觉得不合适我的程序,于是自己下决心做一个,过程倒还挺顺利。现在拿出来和大家分享,希望对大家有所帮助。阿弥陀佛!^_^ 一、先上个图片个给大家看一下效果吧。 二、源代码下载 DragListCtrl_VC6.zip (VC6下编译通过,支持unicode) 三、几点说明 1.本例子只能在CListCtrl的报告样式中应用,其它样式的不行。 ...
阅读全文
2012-08-21 05:29 工业·编程 ⁄ 共 5217字 暂无评论
粘贴以下代码到一个控制台程序,运行! #include <iostream> #include <windows.h> #include <TCHAR.H> using namespace std; void GetFileNameInPath(const TCHAR* FilePath,TCHAR* FileNameBuf,UINT BufSize); void GetPathWithoutFileName (TCHAR* FilePath); void GetPathWithoutFileName (const TCHAR* FilePath,TCHAR* NewFilePath); void main() { TCHAR path[MAX_PATH]; _tcs...
阅读全文
2012-08-21 05:28 工业·编程 ⁄ 共 4010字 暂无评论
一、功能:     文本转成位图。 二、说明:     (1)记得添加头文件     #include <string>     using namespace std;     (2)可以修改每一行的最大字符个数     #define LINE_MAX 400 //一行最多的字符个数     (3)TAB制表符的默认宽度是8个字符。实际操作中还是不够精确 三、复制...
阅读全文
2012-08-21 05:23 工业·编程 ⁄ 共 2385字 暂无评论
一、当需要激活的窗口是其他程序的窗口时,很简单,如下:     HWND hWnd=::FindWindow("Notepad",NULL);     ::ShowWindow(hWnd,SW_RESTORE);     ::SetForegroundWindow(hWnd); 二、当需要设置的窗口是自己程序的窗口,上面的代码就无效了。原因如下:     Windows 9x/2000中SetForegroundWindow函数当用户正在操作其他窗口时是不能强制某个窗...
阅读全文