
VC/MFC
极简Qt
Qt让数字化更简单,专业Qt软件开发
展开
-
一针见血:error C2146: 语法错误 : 缺少“;”
最近用VC7做一个小软件,主要的功能是定时扫描GPRS接收过来的数据,并存放在数据库里。要求把软件注册成为windows服务。在所有的工作做完以后,我着手实现这部分功能。其实完全不用在程序中写入任何代码,只需要执行一个批处理文件,便可完美地打成服务了。但我还是想试一下用程序怎么实现这个功能。在VC知识库里,找到一篇文章,其实原理并不难,无非是把程序的切入口,由main函数转换到服务控制台上去。文章原创 2008-09-10 11:58:00 · 26919 阅读 · 4 评论 -
VC++ GDI画立体管道
都是以前的一些代码,今天回头整理的时候,看到一些有些用的东西。在做SCADA的时候,所涉及的绘制对象,有立体管道。下面的代码,就是使用GDI来绘制3D立体管道的。下面是核心代码(略显冗余),如果使用,稍作修改即可。http://vcsky.net by havenzhaovoid Draw(CDC *PDC) { int pointNum = m_PointArray.Get原创 2012-04-24 10:42:11 · 4910 阅读 · 0 评论 -
Windows线程同步(一):临界区对象
为什么使用线程同步?同步可以保证在一个时间内只有一个线程对某个资源(如操作系统资源等共享资源)有控制权。共享资源包括全局变量、公共数据成员或者句柄等。同步还可以使得有关联交互作用的代码按一定的顺序执行。线程同步的方式?同步对象有:CRITICAL_SECTION (临界区),Event(事件),Mutex(互斥对象),Semaphores(信号量)。本文重点讲解CRITIC原创 2011-11-22 17:04:35 · 6209 阅读 · 0 评论 -
CPictureEx类实现GIF图片的缩放
关于CPictureEx类,网上很多文章了。但基于CPictureEx展示的GIF图片,却无法缩放,有些不方便。因项目中用到了这个类,而且要实现缩放的功能。于是研究了一下,现将相关代码写下来,仅供参考。分两步:1、主要是修改OnPaint函数,这个方法里使用了BitBlt原创 2011-10-09 16:20:12 · 5943 阅读 · 2 评论 -
TransparentBlt用法
TransparentBlt 函数在Windows98/Windows2000以上版本运行,系统中需要包含 Msimg32.dll,使用时可以链接 Msimg32.lib。Windows98下的TransparentBlt会产生资源泄漏,所以不建议在WIN98下使用该函数。原创 2010-07-28 16:09:00 · 13050 阅读 · 1 评论 -
html 调用ActiveX
html网页调用ActiveX控件时,要获取到ActiveX的ClassID,这个ClassID是注册到系统里的,而不是工程中的uuid,(下图为uuid)。正确的是在注册表的HKEY_CLASSES_ROOT中查找你的工程名的“项”,找到后,其子键CLSID的值就是原创 2011-09-19 10:25:10 · 7221 阅读 · 1 评论 -
利用BCGControlBar,打造工具栏上的时间控件
在BCGControlBar中,有CBCGPToolbarDateTimeCtrl这样一个类。此类提供了工具栏上的时间控件使用方法。在BCG的例子ToolbarDateTimePicker中,已经提供了此类的应用。首先,制作你的工具栏:完成后,在资源文件中可以看到原创 2011-08-05 17:10:30 · 3172 阅读 · 1 评论 -
DrawFrameControl绘制按钮
CDC类中的DrawFrameControl函数,提供了在DC中绘制按钮的方法,而不必采用动态创建按钮的形式。函数原型如下:BOOL DrawFrameControl( LPRECT lpRect, UINT nType, UINT nState ); 参数说原创 2011-08-03 14:14:49 · 12383 阅读 · 2 评论 -
VC画圆
用CDC画椭圆实现,圆是特殊的椭圆而已。void DrawCircle(CDC* pDC,CRect rect){ int cx,cy; if (rect.right { cx = rect.left; rect.left = re原创 2010-09-08 09:32:00 · 10785 阅读 · 0 评论 -
VC向非模态对话框发消息
定义一个全局变量,把这个非模式对话框A的指针保存起来 CWnd* handDlg = NULL; 在非模式对话框A创建时将地址保存在handDlg中 CMyDlg *pDlgA=new CMyDlg; pDlgA->Create(IDD_MY_DIALOG, this); handDlg = pDlgA;//向对话框发送消息 if(handDlg原创 2011-06-03 17:22:00 · 3532 阅读 · 1 评论 -
InitInstance函数
<br />BOOL InitInstance()为什么说它是程序的进入点?还有,那个WinMain函数又有什么作用,这两个函数之间有什么关系吗?<br />BOOL InitInstance()是MFC的CWinApp类的成员函数,而WinMain才是真正的入口点,但是MFC不允许程序中有WinMain这个函数,因为MFC自己编写了WinMain函数,如果程序中再定义就重复定义了,而MFC编写的的WinMain函数则调用了CWinApp::InitInstance函数,所以InitInstance看起来似转载 2010-11-18 14:37:00 · 23761 阅读 · 6 评论 -
WM_SYSCOMMAND
<br />从窗口系统菜单上发送该消息,实现窗口的最大化,最小化,移动,还原,移动等操作<br />假设在CWnd派生类中<br />如,关闭窗口SC_CLOSE<br />SendMessage(WM_SYSCOMMAND, SC_CLOSE, NULL);<br />最小化窗口SC_MINIMIZE<br />SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, NULL);<br />窗口移动状态SC_MOVE <br /> <br /><br />SendMessage(W转载 2010-09-01 09:54:00 · 12417 阅读 · 0 评论 -
VC画小三角形
<br />void DrawTriangle(CDC* PDC, CPoint point, DWORD Color)<br />{<br /> CPen Pen(PS_SOLID,1,Color), *pOldPen;<br /> pOldPen = PDC->SelectObject(&Pen);<br /> PDC->MoveTo( point.x, max( 0, point.y - 3 ));<br /> PDC->LineTo( max(0, point.x -原创 2010-08-19 10:19:00 · 5089 阅读 · 0 评论 -
如何注册Shockwave Flash Object
1、开始->运行;2、cd C:/WINDOWS/system32/Macromed/Flashregsvr32 flash10h.ocx //flash10a.ocx 因版本不同而不同,dir命令可查看到。(flash10a.ocx)3、VC6添加引用:Project->Add to Project->Components and controls Gallery.原创 2010-08-12 15:18:00 · 6254 阅读 · 0 评论 -
VC6使用shakewaveflash控件方法
1、下载shakewaveflash控件,安装;2、project-》add to project-》components and controls 选择插入Shockwave Flash Object 控件。 3、工程中插入一个CShockwaveFlash类 4、就可以定义一个CShockwaveFlash类的实例 CShockwaveFlash m_flash; //全局的5、要显示的地方添加代码:m_flash.Create(NULL, WS_CH原创 2010-07-30 17:40:00 · 3384 阅读 · 0 评论 -
VS2010设置VC6的字体样式及背景色、选中字高亮
习惯了VC6.0的fixedsys字体,用VS2010还真不习惯。把VS2010打造成经典的、熟悉的模样,也并非难事。网上有相应的文章,我再记录下来,主要是为了自己查找方便(刚刚重装了系统,一切从头再来,从网上找半天,浪费时间)。http//vcsky.net by havenzhao使用字体:Fixedsys Excelsior 3.011、首先下载字体:http://w原创 2012-04-28 15:12:29 · 18016 阅读 · 6 评论