Programming Technology

Visual Studio 编程好助手 -- Visual Assist

用过Eclipse后,才知道什么叫开发环境...什么自动输入,语法高亮,自动填充....等等,在输入代码的时候就可以避免语法错误

但是在微软的VS下开发,比较痛苦,尤其是VC6,不过推荐一种插件Visual Assist,这时就有很多类似的功能,支持VS的所有.net版本,VC6,VS2003,VS2005,甚至是VS2008

官方地址:  http://www.wholetomato.com/default.asp

插件特性介绍(官方):

 (查看全文)

VC下不让窗口在任务栏显示 (Hide CDialog of task bar)

这里介绍的两种方法是直接调用WINDOWS API就可以了

在OnInitDialog()函数下添加:

  1. //消除任务栏显示
  2. LONG style = ::GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE); //获得窗体扩展风格
  3. style &= ~WS_EX_APPWINDOW; //取消WS_EX_APPWINDOW
  4. ::SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, style); //设置窗体扩展风格

 (查看全文)

MFC中CBitmap的简单复制方法 (Copy CBitmap)

在这里为大家提供一种CBitmap复制的方法

经过自己的一层封装,就形成的非常好用的CBitmap的复制工具函数

先看函数实现:

 

 (查看全文)

VC下在对话框上实现接受文件拖放 (Drop files)

大部分Windows应用工具程序都能响应接受文件拖放,比如Word,Notepad等

当把文件直接拖拽到该窗体或者是某个控件下,应用程序会直接打开这个文件,这样将极大的方便客户使用

本文就是介绍这个的实现,跟以前一样,不看到代码一定会很不爽:

1. 首先先将您的CDialog设置为Accept files,通过代码或者选项点击都可以实现

2. 添加函数声明和消息映射

 (查看全文)

MFC中实现的画箭头算法 (Arrow in MFC)

箭头算法演示

在以前做的程序中,曾经需要使用程序来画出一个箭头

但是自己想出的算法又不是太通用

所以在codeproject中寻找到一个这样的算法,在这里介绍一下

可以改变三角形大小,顶点角度,是否填充和填充颜色等

但是画出的箭头还是不够美观....呵呵,还好吧

其中填充是代表箭头内是否填充颜色 

 (查看全文)

VC下在对话框上直接输入字母或文字的实现 (Input word on CDialog directly)

以前在看孙鑫老师的视频时,发现了一个在CDialog直接输入字母或文字的思路及其实现方法

说白了就是直接在对话框上画出文字

根据孙鑫老师的代码,经过了自己的小小的修改,发现还是比较好用的,现公布出来

实现代码:

 (查看全文)

VC下模拟切换输入法 (Input method simulation)

其实切换输入法的工作很简单,就需要调用一个函数就可以实现

函数声明:

  1. HKL ActivateKeyboardLayout(
  2.   HKL hkl,     // handle to keyboard layout
  3.   UINT Flags   // keyboard layout flags
  4. );

 (查看全文)

为对话框设计美观的工具栏 (Add toolbar for CDialog)

本文介绍,在CDialog下工具栏的实现和优化

美化工具栏示例

1. 为CDialog添加工具栏

2. 使toolbar以多行显示

3. 为toolbar添加提示信息(TipText)

4. VC6下显示包含多彩色图片的工具栏

 (查看全文)

在VC2005下使程序直接具有XP风格(XP Style)

在VC2005环境下有的时候必须使用"多字节字符集",而不使用默认的"Unicode"字符集,执行的程序是不具有XP外观的

本文章说明了,在XP环境在VC2005(vc8)下使程序直接具有XP风格(无外带文件,绿色)

其中的代码是和 "VC6下的实现XP风格" 是一样的,就是文件名不一样了

将以下代码写到一个文本文件中,再重命名为"*.manifest"

到VC2005环境中,"添加资源",把这个文件添加近资源文件中,资源号写24,执行即可

 (查看全文)

VC静态库下CRectTracker鼠标光标(指针)不显示问题

使用CRectTracker的类后,调用下面的函数进行鼠标光标(指针)的切换

  1. BOOL CMyDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
  2. {
  3.         // TODO: Add your message handler code here and/or call default
  4.         if (pWnd == this && m_RectTracker.SetCursor(this, nHitTest))
  5.                 return TRUE;
  6.         return CDialog::OnSetCursor(pWnd, nHitTest, message);
  7. }

 (查看全文)