摘要: XML在Win32程序方面应该没有在Web方面应用得多,很多Win32程序也只是用XML来存存配置信息而已,而且没有足够的好处的话还不如用ini。VC++里操作XML有两个库可以用:MSXML和XmlLite。MSXML又细分了两种接口:DOM和SAX2。XP没自带有XmlLite,只自带有2.x、3.x版的MSXML,不支持SAX2(需要MSXML 4.0以上),所以优先使用DOM。DOM是以COM形式提供的,VC++里调用DOM可以分3种方法:1、MFC里用CComPtr调用2、SDK里直接调用DOM接口3、SDK里用智能指针调用这3种方法本质上是一样的,区别只不过在于需要编码的多少而已, 阅读全文
posted @ 2011-11-02 10:42 lingyun1120 阅读(13774) 评论(0) 推荐(2) 编辑
摘要: 用MFC制作的工程由很多文件构成,它不能象一般C++程序那样随意在类外定义全局变量,在这里要想定义能被工程内多个文件共享的全局变量和函数必须用一些特殊方法才行。实际上有多种方法可以实现,这里只介绍两种方法。一、在应用程序类中定义用MFC生成的工程中都有一个名为CxxxApp的类,它派生于CWinApp类。这个类主要进行程序的初始化,生成文档、视图对象等工作。我们可以把需要全局访问的变量和函数定义为这个类的成员变量和成员函数,就可以实现全局访问了。从严格意义上讲,这种变量和函数并不是全局的,因为它仍然只是类中的成员,只是由于我们很容易获得CxxxApp类的指针,所以我们可以在文档、视图、对话框以 阅读全文
posted @ 2011-10-31 17:11 lingyun1120 阅读(26144) 评论(2) 推荐(1) 编辑
摘要: 要找到某个CWnd对象的HWND,用GetSafeHwnd()。在窗口类中,有句柄的成员变量,可以直接访问: m_hWnd 在窗口类外,可以用AfxGetMainWnd()->m_hWnd获得。在MainFrame里直接用this; 其它地方用 CMainFrame* pMainFrame = (CMainFrame*)theApp.m_pMainWnd;想得到一个控件的的句柄GetDlgItem(ID…)->m_hWnd得到视图的句柄AfxGetMainWnd()->GetActiveView();SDI: ((CFrameWnd*)(AfxGetApp()->m_p 阅读全文
posted @ 2011-10-31 11:30 lingyun1120 阅读(374) 评论(0) 推荐(0) 编辑
摘要: 1."属性页的添加:创建对话框的类,该类要从CpropertyPage继承;然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch;最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码:m_tabsheet.Create(this, WS_CHILD | WS_VISIBLE, 0);"//使选项卡的按钮在下面"if(m_tabsheet.m_hWnd)"m_tabsheet.ShowWindow(SW_MAXIMIZE);//显示选项卡 阅读全文
posted @ 2011-10-28 11:20 lingyun1120 阅读(1576) 评论(0) 推荐(1) 编辑
摘要: 重写了CListBox类,从网上收集的,很好很强大使用方法:(适用于vc++ MFC)把包里的头文件和cpp文件包含进你的工程1)添加一个listbox control2)设置此控件属性:Has Strings : trueowner draw : fix or variableselection : single其他的属性随意。3)为此控件添加变量,变量类型为类CColorListBox4)接下来用CColorListBox重载的方法AddString等方法就可以在listbox添加各种颜色的项了在visual studio 2005 使用成功!!!Has String 属性:LBS_HAS 阅读全文
posted @ 2011-10-28 11:15 lingyun1120 阅读(352) 评论(0) 推荐(0) 编辑
摘要: void CImgButton::SetServerName(TCHAR * strName){memset(strText,0,65); memcpy(strText,strName,64);} 阅读全文
posted @ 2011-10-27 10:58 lingyun1120 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 在class view的工程目录下,添加类CImgButton,继承自CBitmapButton。选择CImgButton类的property,重载DrawItem(不是Message下的WM_DRAWITEM,其响应函数OnDrawItem不会被调用到。为什么?),实现在bitmap上写入文字的功能。代码基本照搬http://topic.csdn.net/u/20070611/09/d59ec937-70b1-49f2-b8df-ff44a87b1a04.html里的,附于本文后。使用时,1)在dialog中拖入一个button,设置ownerdraw。2)装载需要的位图资源。3)对话框头文 阅读全文
posted @ 2011-10-27 10:57 lingyun1120 阅读(2274) 评论(0) 推荐(0) 编辑
摘要: 本文参考:http://blog.csdn.net/akof1314/article/details/4951836 在用MFC开发时,界面是比较不好开发的一块。VC中自带了CBitmapButton类,但是用途不多,网上很多Button类的派生类蛮实用的,但是若是简单的位图按钮用自带的CBitmapButton就可以实现了,以下是效果图:步骤一:新建基于对话框工程,放置一个按钮,可以适当调整大小,设置其Owner Draw属性为TRUE,右键为按钮添加变量,改变其变量类型为CBitmapButton,按确定完成;步骤二:导入按钮位图,这里四幅图大小要一致步骤三:初始化工作,在对话框的OnIn 阅读全文
posted @ 2011-10-27 09:29 lingyun1120 阅读(2894) 评论(0) 推荐(1) 编辑
摘要: 1:开关作用,条件编程#ifdef A程序段#endif2:避免重复定义,重复包舍#ifndef A#defined A程序段#endif这几个宏是为了进行条件编译。一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件才进行编译,也就是对一部分内容指定编译的条件,这就是“条件编译”。有时,希望当满足某条件时对一组语句进行编译,而当条件不满足时则编译另一组语句。 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2 阅读全文
posted @ 2011-10-21 13:14 lingyun1120 阅读(364) 评论(0) 推荐(0) 编辑
摘要: http://dev.10086.cn/cmdn/bbs/thread-46202-1-1.html 今天早上按照hello android做例子,做到【7.3 From JavaScript to Java and Back】时,发现java调用js没问题,用java包装js的方法也没问题,直接可以通过,但是js调用java的时候总是莫名其妙的退出,下面是js调用java的代码:js代码(在assets/*.html中定义): <a href="#" onclick="window.android.callAndroid('Hello from B 阅读全文
posted @ 2011-10-19 08:29 lingyun1120 阅读(861) 评论(0) 推荐(0) 编辑