2012年2月18日
摘要: typedef struct tag { DWORD itemData; int dataI; }DTAWITEMSTRUCT; typedef DTAWITEMSTRUCT* LPDRAWITEMSTRUCT; typedef struct tag2 { CString strTest; UINT uID; UINT inDex; int postionleftImage; }MENUITEM ; MENUITEM menuitem={_T("hello"),100,100,100}; DTAWITEMSTRUCT drawitemstruct={1000,1000}; 阅读全文
posted @ 2012-02-18 11:07 小水人 阅读(102) 评论(0) 推荐(0) 编辑
  2012年2月17日
摘要: 《1》template<typename T>class TSafeSingleton{private: typedef T SingletonObj;public: class TSafeCreator{public:TSafeCreator(){ TSafeSingleton<SingletonObj>::Instance();}inline void Do(){} };static TSafeCreator s_oCreator;public:static SingletonObj* Instance(){ static SingletonObj s_oT; s_ 阅读全文
posted @ 2012-02-17 17:02 小水人 阅读(161) 评论(0) 推荐(0) 编辑
摘要: BOOLResourceToFile(constTCHAR*szResType,constTCHAR*szResName,constTCHAR*szFileName){ HRSRC hRes; HANDLE hGlobal,hFile; DWORD dwSize,wSize; PVOID pMemory; BOOL fResult=false; HINSTANCEhInst=::GetModuleHandle(NULL); hRes=FindResource(hInst,szResName,szResType); if(hRes==0) { inti=GetLastError(); retur 阅读全文
posted @ 2012-02-17 16:56 小水人 阅读(181) 评论(0) 推荐(0) 编辑
  2012年2月16日
摘要: CListCtrl& m_list = GetListCtrl();//得到内置的listctrl引用 LONG lStyle; lStyle = GetWindowLong(m_list.m_hWnd, GWL_STYLE);//获取当前窗口风格 lStyle &= ~LVS_TYPEMASK; //清除显示方式位 lStyle |= LVS_REPORT; //设置报表风格 SetWindowLong(m_list.m_hWnd, GWL_STYLE, lStyle); //设置窗口风格 DWORD dwStyle = m_list.GetExtendedStyle();/ 阅读全文
posted @ 2012-02-16 10:59 小水人 阅读(106) 评论(0) 推荐(0) 编辑
  2012年2月15日
摘要: (1) 如何通过代码获得应用程序主窗口的 指针?主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED)//使程序最大化.(2) 确定应用程序的路径Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。Example:TCHARexeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是128GetModuleFileName(NULL,exeFullPath,MAX_PATH)(3) 如 阅读全文
posted @ 2012-02-15 16:30 小水人 阅读(238) 评论(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 @ 2012-02-15 16:25 小水人 阅读(431) 评论(0) 推荐(0) 编辑
  2012年2月11日
摘要: 关于完成端口网上有很多文章,不过我个人觉得大多都讲得不够清楚。给的例子要不就是给一个复杂的封装,要不就是给一个简单的收发数据。注意,完成端口不仅仅用于网络数据的收发,它可以用于windows 平台的各种IO操作。不过我这里只关注在winsock编程中的应用。 要写出一篇真的让人能够明白的文章,不那么容易。这里我只暂时贴些我的理解。迟些时候如果有空的话,我倒有兴趣写个详细的入门文章。1.26.2008Kevin Lynx理解完成端口: 就目前所了解的信息来说,完成端口通常都会与重叠IO有关联。完成端口可被看作是一个队列。各种操作都会被放到该队列里,程序在迟些时候查询此队列获取之前提交的IO操作结 阅读全文
posted @ 2012-02-11 13:45 小水人 阅读(420) 评论(0) 推荐(1) 编辑
摘要: 其实还可能出现其它类似的问题,如:error C2664: “fopen”: 不能将参数 1 从“CString”转换为“const char *”error C2039: “strcpy”: 不是“ATL::CStringT<BaseType,StringTraits>”的成员但是程序在VC6下编译得很好,经过研究发现是设置上有所不同。在VC6中,默认使用MBCS编码,即多字节字符;而VC8、VC7默认的是Unicode编码,所以...关于这两种编码有何不同,我引用了网上的一篇文章,由于作者匿名,只能在此感谢:http://pc.nengbang.cn/group_thread/ 阅读全文
posted @ 2012-02-11 13:45 小水人 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 客户端代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;using System.Net.Sockets;using System.Threading;using System.Net;namespace p2p{ public partial class Form1 : Form { priv 阅读全文
posted @ 2012-02-11 11:45 小水人 阅读(484) 评论(0) 推荐(0) 编辑