浙林龙哥

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

随笔分类 -  C/C++

摘要:在ATL(VC6版本)中创建一个Composite Control,然后在资源编辑器的Dialog上摆上一个Edit控件,一行代码也别写,然后Build成Unicode版本。 接着把这个控件放在VB6的Form上,然后运行,你会发现在Edit控件中输入中文显示乱码,但是在IE中嵌入这个控件,输入中文没有问题。 大家可以看ATL中的一段处理代码 CCompositeControl::PreTran... 阅读全文
posted @ 2004-10-15 11:00 浙林龙哥 阅读(1366) 评论(0) 推荐(0) 编辑

摘要:先看下面的示例代码:template void test(){ T o; for(T i = numeric_limits::min(); i ::max(); ++i) { stringstream stream; stream > o; assert(i == o); }} 试着按下面这样调用它:test();一点问题都没有。 再这样调用:test();你会发现当i=9的时候,a... 阅读全文
posted @ 2004-10-15 10:38 浙林龙哥 阅读(1034) 评论(0) 推荐(0) 编辑

摘要:在用C#中的GDI+写过程序以后,我喜欢上了这个新的图形设备接口。可是只能在装有.net框架的计算机上才能运行我的程序,这让我觉得不爽了。当我发现“真正的”GDI+代码是在一个单独的、没有托管的叫做GDIplus.dll的DLL中实现时,我像发现新大陆一样,顿时高兴起来,我可以在“真正的”计算机里运行使用GDI+的程序了,我想这样速度会比在C#中快一些吧,说干就干,打开msdn一步一步做起来了。... 阅读全文
posted @ 2004-10-15 08:43 浙林龙哥 阅读(2232) 评论(0) 推荐(0) 编辑

摘要:Improving C++ Program Performance(Dr. Dobb's Journal October 1999/10)作者:Stanley Lippman译者:陈崴侯捷注:本文系北京《程序员》杂志 2001/12 的文章。承译者陈崴先生与《程序员》杂志负责人蒋涛先生答允,转载於此,以飨台湾读者,非常感谢。 未得陈崴先生与蒋涛先生二人之同意,任何人请勿将此文再做转载。 -----... 阅读全文
posted @ 2004-10-15 08:42 浙林龙哥 阅读(729) 评论(0) 推荐(0) 编辑

摘要:这是本小人书。原名是《using stl》,不知道是谁写的。不过我倒觉得很有趣,所以化了两个晚上把它翻译出来。我没有对翻译出来的内容校验过。如果你没法在三十分钟内觉得有所收获,那么赶紧扔了它。文中我省略了很多东西。心疼那,浪费我两个晚上。 译者:kary contact:karymay@163.net STL概述STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得S... 阅读全文
posted @ 2004-10-15 08:41 浙林龙哥 阅读(3259) 评论(0) 推荐(0) 编辑

摘要:C/C++语言中的typedef相信大家已经不陌生,本文对C/C++语言关键字typedef的各种用法作一个介绍。 typedef,顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。例如: typedef unsigned int UINT; int main (int argc, char *argv[]) { ... 阅读全文
posted @ 2004-10-10 16:27 浙林龙哥 阅读(1241) 评论(2) 推荐(0) 编辑

摘要:如何定制对话框中的回车键 赵湘宁 本文例子代码 基于对话框的程序中,每次按下回车键时,程序都退出。去掉按钮的 BS_DEFPUSHBUTTON 属性并重写OnOK函数也没用。那么如何定制回车键的行为呢?这个问题很easy,但是要说明白,却要费点时间。 这个问题在Windows的开发中由来已久,对于初学者来说,这是个恼人的问题,幸运的是,人们找到了多种解决这个问... 阅读全文
posted @ 2004-10-10 10:33 浙林龙哥 阅读(1358) 评论(0) 推荐(0) 编辑

摘要:在某些时候,可能需要覆盖剪贴板的数据,例如过滤聊天时在输入窗口粘贴非文字格式的信息。对于浏览器控件的编辑模式,浏览器提供了IDocHostUIHandler接口来支持粘贴时提供一个替代的数据源来覆盖剪贴板的数据。下面的代码描述了如何过滤除了CF_TEXT之外的剪贴板格式 HRESULT CHtmlCtrl::OnFilterDataObject(IDataObject * pDataO... 阅读全文
posted @ 2004-10-08 17:05 浙林龙哥 阅读(728) 评论(0) 推荐(0) 编辑

摘要:本教程提供了自定义浏览器控件的行为和外观的一些方法。你将看到高级的宿主接口,IDocHostUIHandler, IDocHostUIHandler2, IDocHostShowUI, 和ICustomDoc。本文也讨论其他自定义方法,例如在宿主的IDispatch实现中处理DISPID_AMBIENT_DLCONTROL来进行下载控制;以及使用IHostDialogHelper。 本文分为如... 阅读全文
posted @ 2004-10-08 17:01 浙林龙哥 阅读(2077) 评论(0) 推荐(1) 编辑

摘要:访问动态HTML(DHTML)对象模型的所有接口以IDispatch为基类,而且也是被用于脚本的对象模型的基础。因此对要操纵对象模型的任何人来说很重要的是熟悉定义在动态的HTML介绍的概要和MSHTML包含的对象模型参考中的结构和功能。 MSHTML参考的接口和脚本对象这一节说明了对象如何在DHTML对象模型里面映射到接口。举例来说,使用这一个映射,你可以看到IHTMLDocument2接口映... 阅读全文
posted @ 2004-10-08 17:01 浙林龙哥 阅读(2645) 评论(1) 推荐(0) 编辑

摘要:STLport安装指南STLport-4.6 是完全兼容ANSI C++标准的类库。 This distribution contains STLport sources only, no binaries.To use STLport iostreams, you have to build STLport library from sources in "src" directory and ... 阅读全文
posted @ 2004-10-08 08:31 浙林龙哥 阅读(1409) 评论(0) 推荐(0) 编辑

摘要:Submitted by mayong on 2004, 九月 21 - 02:43. WTL 库 7.1 及以上版本修改了不少内容。昨天使用wtl 中的CFileDialog类时发现过滤器死活不好用,试了很多种也不行。但别人的在7.0中却好用,百思不得其解。 后来查看wtl的源码后终于发现了不同:7.0 及mfc中是使用 "|" 隔开描述和掩码,但wtl 7.1以及新的7.5版本中则使用'\... 阅读全文
posted @ 2004-09-30 09:36 浙林龙哥 阅读(1575) 评论(1) 推荐(0) 编辑

摘要:带阴影的类 CShadowWnd 类的头文件及其实现文件的全部细节。 //头文件: if !defined(AFX_SHADOWWND_H__B971A958_59CC_11D2_AC8F_0060084237F6__INCLUDED_) #define AFX_SHADOWWND_H__B971A958_59CC_11D2_AC8F_0060084237F6__INCLUDED_ #if _MS... 阅读全文
posted @ 2004-09-29 20:26 浙林龙哥 阅读(1048) 评论(0) 推荐(0) 编辑

摘要:比较有用的设置:(1)WS_POPUP:弹出式窗体,没有标题栏!WS_BORDER:细的黑边框WS_OVERLAPPED:一般的有标题栏的窗体,见多了。WS_CHILD:子窗体,一般用于Frame里面的窗体(2)WS_CAPTION:标题栏WS_SYSMENU:系统菜单(只有设置后才有最小化、最大化、关闭)WS_MINIMIZEBOX :最小化按钮WS_MAXIMIZEBOX:最大化按钮WS_MI... 阅读全文
posted @ 2004-09-29 15:12 浙林龙哥 阅读(2392) 评论(0) 推荐(0) 编辑

摘要:// Add to WndProc case WM_CONTEXTMENU: if (lParam != -1 && SendMessage(hwnd, WM_NCHITTEST, 0, lParam) == HTSYSMENU) { HMENU hmenu = CreatePopupMe... 阅读全文
posted @ 2004-09-29 10:22 浙林龙哥 阅读(818) 评论(0) 推荐(0) 编辑

摘要:1.在OnInitDialog中加入: // IDM_ABOUTBOX must be in the system command range. ATLASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ATLASSERT(IDM_ABOUTBOX < 0xF000); HMENU hMenu = GetSystemMenu(FALSE); ... 阅读全文
posted @ 2004-09-29 09:18 浙林龙哥 阅读(1374) 评论(0) 推荐(0) 编辑

摘要:应用程序使用两个嵌套的split将Frame分成三个窗体,其中一个窗体装载IE控件,一个窗体装formView发现以下bug:(1)IE浏览www.google.com直接关闭,没问题;但在浏览时按鼠标右键点属性,然后确定,再关闭就会有alloc错误,原因未知。后来更新WTL源码后无此问题,可能是atlmisc.h中改了一行分配内存的语句(约2355行,version:1.3修复): ps... 阅读全文
posted @ 2004-09-26 20:05 浙林龙哥 阅读(728) 评论(0) 推荐(0) 编辑

摘要:竟然可以先在Dialog中画一个Group Box用于定位,程序运行起来后把它的位置信息放到rect中,就把它销毁了!再后来,动态地创建了一个IE控件,位置呢就用rect。代码:LRESULT CAboutDlg::OnInitDialog(...) { CWindow wndPlaceholder = GetDlgItem ( IDC_IE_PLACEHOLDER ); CRect rc; CA... 阅读全文
posted @ 2004-09-24 19:13 浙林龙哥 阅读(1444) 评论(0) 推荐(0) 编辑

摘要:用CImageList读取256-bit以上的位图(注意红色的部分),位图的底色要是白色: m_images.CreateFromImage ( IDB_TOOLBAR, 16, 1, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION );然后在Treeview(或其它场合)中使用: m_tree1.Attach(Ge... 阅读全文
posted @ 2004-09-23 17:40 浙林龙哥 阅读(2682) 评论(0) 推荐(0) 编辑

摘要:下面看两个示例,演示了如何使用GradientFill()其实很简单,参数一为每个顶点的位置、色彩定义,参数二为要使用的顶点数目,第三个参数为这些顶点如何绘制,第四个参数为绘制的次数,第五个参数为绘制模式如:vert,4,&gTRi,3,GRADIENT_FILL_TRIANGLE(1)绘制模式为:三角形GRADIENT_FILL_TRIANGLE(2)绘制的顶点数为4,就是说有4个顶点,这4个顶... 阅读全文
posted @ 2004-09-22 19:16 浙林龙哥 阅读(1476) 评论(0) 推荐(0) 编辑