VC
文章平均质量分 69
hazy
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
如何取得字符点阵数据(GetGlyphOutline函数简单应用)
近日做的程序需要取得字符点阵数据的功能,研究了一下,费了点周折才成功,现将方法总结如下。 取得字符点阵主要用GetGlyphOutline函数:DWORD GetGlyphOutline( UINT nChar, UINT nFormat, LPGLYPHMETRICS lpgm, DWORD cbBuffer, LPVOID lpBuffer, const MAT2 FAR*原创 2005-06-22 20:54:00 · 4976 阅读 · 11 评论 -
VC调试版本C运行库内存申请的一个bug(转)
<br /> <br />遇到过一个通信方面的软件,需要长期运行,做压力测试时,高负荷连续运行一定天数时必定崩溃,而且都是在msvcrtd.dll中崩溃。负责维护的人百思不得其解,就去问微软的人,结果微软的人说这是VC6带的msvcrtd.dll的一个问题,VC2005已经没有这个问题了,请升级到新的版本。这个软件规模比较大,依赖于很多库,后台都是用VC6编译的调试版本,为了方便定位问题,没有Release版本。升级到VC2005后会不会出现别的问题,没有人敢冒这个风险,于是没有使用VC2005。<br /转载 2011-05-23 23:06:00 · 2415 阅读 · 1 评论 -
vc中怎么使用SendMessage自定义消息函数
<br /><br /><br />vc中怎么使用SendMessage自定义消息函数:<br /><br />SendMessage的基本结构如下:<br />SendMessage(<br /> HWND hWnd, //消息传递的目标窗口或线程的句柄。<br /> UINT Msg, //消息类别(这里可以是一些系统消息,也可以是自己定义,下文具体介绍,)<br /> WPARAM wParam, //参数1 (WPARAM 其实是与UINT是同种类型的,<br />转载 2011-04-04 09:38:00 · 884 阅读 · 0 评论 -
VC 多线程编程
<br />http://www.cppblog.com/Lee7/archive/2008/08/15/58952.html转载 2011-04-04 10:28:00 · 475 阅读 · 0 评论 -
当文档被修改时,如何在标题上加上标志'*'
重载CDocument类的虚函数virtual SetModifiedFlag:void CTest2Doc::SetModifiedFlag(BOOL bModified){ CString strTitle = GetTitle(); CString strDirtyFlag = " *"; // note space before the *转载 2011-06-21 15:14:00 · 1001 阅读 · 0 评论 -
CFormView 怎样使用ON_UPDATE_COMMAND_UI
1、包含 afxpriv.h 处理 WM_IDELUPDATECMDUI 消息2、添加消息映射ON_MESSAGE_VOID(WM_WM_IDLEUPDATECMDUI , OnIdleUpdateCmdUI)void CInputView::OnIdleUpdateCmdUI(){UpdateDialogControls(this, FALSE);}ON_UPDAT转载 2011-06-22 12:49:00 · 803 阅读 · 0 评论 -
剪贴板(转)
拷贝与粘贴文本 下边的源代码演示了如何将文本(包含在CString对象“source”中)拷贝到剪贴板上。 CString source; //put your text in sourceif(OpenClipboard()){ HGLOBAL clipbuffer; char * buffer; EmptyClipboard(); clipbuffer = GlobalAllo原创 2011-04-30 03:41:00 · 632 阅读 · 0 评论 -
如何使应用程序只运行一个实例
关键字:VC如何使应用程序只运行一个实例,VC 只运行一次,只给一个程序运行在开发网络应用程序的时候,由于端口分配和占用问题,经常出现某程序只给运行一个实例的情况.下面就介绍一下,如何使程序就只运行一个实例.方法一:在应用程序类中使用互斥量实现步骤:1.用GUIDGEN.EXE产转载 2011-07-13 11:03:28 · 647 阅读 · 0 评论 -
CString TCHAR的互相转换
CString->TCHAR*的转化可以用函数GetBuff()函数原型为:LPTSTR GetBuffer( int nMinBufLength );CString str("CString"); TCHAR* szMsg = new TCHAR[100]; //其参转载 2011-07-13 12:10:20 · 490 阅读 · 0 评论 -
CreateProcess API函数
我们可以利用CreateProcess API函数来创建相应的进程,该函数的原型如下: CreateProcess( LPCWSTR lpszImageName, //指向可执行的模块的指针 LPCWSTR lpszCmdLine, //指向可执行命令行字符串的指针 LPSEC转载 2011-07-13 11:40:54 · 517 阅读 · 0 评论 -
MDI文件拖动实现
1、在CMainFrame创建后调用 DragAcceptFiles(),接受拖动文件,否则当拖动文件进入程序区域后鼠标光标变成“阻止”标志2、在CMainFrame里处理WM_DROPFILES消息: TCHAR szFileName[MAX_PATH]; UIN原创 2011-08-18 11:42:30 · 600 阅读 · 0 评论 -
字符集与编码
字符集与编码各个国家和地区所制定的不同 ANSI 编码标准中,都只规定了各自语言所需的“字符”。比如:汉字标准(GB2312)中没有规定韩国语字符怎样存储。这些 ANSI 编码标准所规定的内容包含两层含义:1. 使用哪些字符。也就是说哪些汉字,字母和符号会被收入标准中。所包含“字符”的集合就叫做“字符集”。2. 规定每个“字符”分别用一个字节还是多个字节存储,用哪些字节来存储,这个规定转载 2012-01-17 11:05:27 · 546 阅读 · 0 评论 -
CFontDialog 对话框定制
定制之前:定制之后:把“颜色”下拉框隐藏掉。方法:1、重载CFontDialog 类:class CMyFontDialog : public CFontDialog2、在CMyFontDialog::OnInitDialog() 里添加语句:CWnd * pbox =GetDlgItem(0x473);//颜色COMBOpbox->原创 2012-01-29 11:53:16 · 1505 阅读 · 0 评论 -
CListCtrl使用技巧
以下未经说明,listctrl默认view 风格为report1. CListCtrl 风格 LVS_ICON: 为每个item显示大图标 LVS_SMALLICON: 为每个item显示小图标 LVS_LIST: 显示一列带有小图标的item LVS_REPORT: 显示item详细资料转载 2012-02-03 17:17:51 · 456 阅读 · 0 评论 -
如何调试程序的 Release 版本
很多时候程序的 Debug 版本运行没有任何问题,但是一旦发布 Release 版本后,运行就出错,着实让人郁闷。大家知道,VC++ 中 Release 版本是对无法对源代码进行调试的。一般的做法是在怀疑有错误的代码前后插入MessageBox 函数,在函数中显示可能导致错误的变量的值。或者插入写文件的语句,输出可能导致错误的变量的值到一个记录文件。其实,除了上面讲的这个办法之外,还有其它的途转载 2012-02-05 15:26:54 · 1208 阅读 · 0 评论 -
MFC文档序列化
<br /> <br /> 引入“文档序列化”的概念会让许多人感到迷惑,什么是“文档序列化”?其实说白了就是将数据(广义上的概念)从硬盘中读出或将数据写入硬盘中。其稍正规的定义可以看看MFC文档如下:<br />The CArchive class allows you to save a complex network of objects in a permanent binary form (usually disk storage) that persists after those ob转载 2011-03-29 18:24:00 · 889 阅读 · 0 评论 -
VC/MFC之TreeCtrl控件使用经验总结(转帖)
树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点。MFC中使用CTreeCtrl类来封装树形控件的各种操作。通过调用 BOOL Create( DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID );创建一个窗口,dwStyle中可以使用以下一些树形控件的专用风格: TVS_HASLINES 在父/子结点之间绘制连线 TVS_LINESATROOT 在根/子原创 2011-03-26 19:44:00 · 1297 阅读 · 0 评论 -
程序设计初体验--我的VC情结!
从我开始写这个程序到现在半年过去了(中间穿插着毕业答辩等琐事),现在已基本完成。感觉自己在技术上有了些长进,把感受写下来吧,有没有人看无所谓,要的是这个过程。 我是学电出身,大学学了四年应用电子技术结果毕业时三极管都弄不太明白,相反,对单片机兴趣浓厚。研究生两年半除了找了个不错的老婆以外也没什么建树;大家都说我技术上还可以(不知道是不是真心话),但我却很知道我的半斤原创 2005-05-14 21:14:00 · 1701 阅读 · 1 评论 -
OpenGL 模型顶点法向量的计算
在OPENGL编程中,三维模型顶点法向量的计算很重要,它直接影响着显示的效果;本人接触OPENGL时间不长,很长一段时间一直困惑于法向量计算的问题,后经仔细研究并找了些资料才基本实现了法向量的计算算法,现总结如下,希望对初学者能有些帮助。 大家知道,在OPENGL中顶点-三角形模型对光照的反射取决于顶点法向量的设置,如果法向量计算正确,显示出来的模型表面很光滑,有光泽,原创 2005-06-18 12:54:00 · 10680 阅读 · 2 评论 -
N年之后的更新
<br />我的BLOG已经被冷落了好几年了,BLOG地址都忘了。正好最近要做的新软件,心血来潮准备更新一下。不是学软件的,做起来真累啊......原创 2010-09-19 14:05:00 · 476 阅读 · 0 评论 -
从零开始再学VC——联合(UNION),结构(STRUCT)
联合其实是C语言的范畴同一组数据想赋给两种结构体,想来想去还是用联合吧。以前没用过?没关系我们有最棒的老师--英特耐特!//CTRL_CHECKtypedef struct tagCTRLCHECK{u8 itype;u8iID;u16wParam;u16 lParam;}CTRLCHECK,*PCTRLCHECK;//CTRL_PROGRESStypedef struct tagCTRLPROG{u8 itype;u8iID;u16 iX;u16 iY;}CTRLPROG,*PCTRLPROG;进来一组数原创 2010-09-20 16:29:00 · 1290 阅读 · 0 评论 -
如何从完整的文件路径中分离文件名和路径名?
<br />CString GetFileName(CString pathname) <br />{ <br /> for( int i=pathname.GetLength()-1; i>=0; i-- ) <br /> { <br /> if( pathname[i]=='//' ) <br /> break; <br /> } <br /> return pathname.Mid( i+1 ); <br /转载 2010-10-05 12:05:00 · 2729 阅读 · 2 评论 -
递归调用,遍历CTreeCtrl的树形结构
CTreeCtrl转载 2010-10-05 12:09:00 · 1228 阅读 · 0 评论 -
照着MSDN用Bitmap,居然还是没用明白,原来问题在这里....
转载:作者:王继ID:wangji163163今天在用GDI+写程序时,有HatchBrush * brushDotDiamond = new HatchBrush(HatchStyle25Percent,color);用VC6 SP6或VS2005编译错误为error C2660: 'new' : function does not take 3 parameters这是VC的一个BUG,微软至今还没有解除。解决办法如下:法一:在该CPP文件开头部分注释掉#define new DEBUG_NEW#i原创 2011-01-22 08:26:00 · 3494 阅读 · 0 评论 -
Static 变量的初始化
<br /> <br />这是一个基础性的问题,写在这里只是为了加深自己的印象。<br />在类中所有的static变量必须在类定义的时候进行初始化,不能在内联函数(比如说构造函数)中初始化。<br /> <br />#include <iostream>using namespace std;class staticDemo { static int x; static int y;public: void print() const { cou转载 2011-01-25 11:41:00 · 1514 阅读 · 0 评论 -
在MDI程序弹出对话框内嵌入CView
借鉴了很多代码,最终实现如下: 在对话框初始化函数添加: BOOL CMsgManage::OnInitDialog() { CDialog::OnInitDialog(); CFrameWnd* pFrameWnd = new CFrameWnd(); CRect rec; GetDlgItem(IDC_VIEW_ADGE)->GetWindowRect(rec); ScreenToClient(rec);原创 2011-02-10 17:39:00 · 1235 阅读 · 0 评论 -
关于m_pfnCreateObject
熟悉MFC大牛也许都知道m_pfnCreateObject,我这里为不熟悉的人再解释一下,MFC大牛可以直接忽略后面的文字。 CRuntimeClas的头文件声明里面,有一行非常奇怪的代码: CObject* (PASCAL* m_pfnCreateObject)(); // NULL => abstract class 这行代码是声明了一个名叫 m_pfnCreateObject 的函数指针,这个函数指针的类型是 CObject* (PASCAL* )()。 m_pfnCreateObject原创 2011-02-10 09:19:00 · 1240 阅读 · 1 评论 -
VC中Combo Box控件使用大全
<br /> <br />一、如何添加/删除Combo Box内容<br />1,在Combo Box控件属性的Data标签里面添加,一行表示Combo Box下拉列表中的一行。换行用ctrl+回车。<br />2,在程序初始化时动态添加<br />如: //控件内容初始化<br /> CString strTemp;<br /> ((CComboBox*)GetDlgItem(IDC_COMBO_CF))->ResetContent();//消除现有所有内容<br /> for(int i=1;i<=10转载 2011-02-20 21:10:00 · 778 阅读 · 0 评论 -
橡皮筋的用法
定义一个对象: CRectTracker m_rectTracker 在LButtonDown消息处理函数里: int nIn; //定义一个鼠标的点击值; nIn=m_rectTracker.HitTest(point); //看看点到了哪了 if(nIn原创 2011-03-10 09:56:00 · 757 阅读 · 0 评论 -
无模式对话框的创建与使用(转自VCKBase)
作者:张连成 在编程过程中,对话框经常用到,但对无模式和模式对话框的创建和销毁过程,经常有误解,下面提供一个无模式对话框的例子来剖析无模式对话框的形成: 无模式对话框与有模式对话框不同的是在创建后其他窗口都可以继续接收用户输入,因此无模式对话框有些类似一个弹出窗口。创建无模式对话框需要调用BOOL CDialog::Create( UINT nIDTemplate, CWnd* pParentWnd = NULL );之后还需要调用BOOL CDialog::ShowWindow( SW_SHOW);进原创 2011-03-10 15:09:00 · 561 阅读 · 0 评论 -
谈谈 C++ 的引用
<br />谈谈 C++ 的引用作者姓名:tide<br />作者主页:http://tide999.myrice.com/<br />引用(reference)是c++的初学者比较容易迷惑的概念。下面我们比较详细地讨论引用。 <br /><br />一、引用的概念<br /><br />引用引入了对象的一个同义词。定义引用的表示方法与定义指针相似,只是用&代替了*。<br />例如: Point pt1(10,10);<br />Point &pt2=pt1; 定义了pt2为pt1的引用。通过这样的定义,转载 2011-03-21 11:11:00 · 432 阅读 · 0 评论 -
Gdiplus 读取并显示 Gif
Gdiplus提供的Bitmap支持读取并显示GIF文件.但是对于部分GIF图片可能会出现帧间间隔为0的情况,为此,在此情况下默认时间间隔为100ms, 不知道是不是我没有找对,有建议欢迎反馈! (测试在GIMP中同样会出现帧间间隔为0,我想应是有个默认值的吧,100ms效果还可以接受,暂且借用)[c-sharp] view plaincopy转载 2012-04-21 15:53:55 · 1137 阅读 · 0 评论
分享