2012-08-02 14:17
⁄ 工业·编程
⁄ 共 6599字
(61) 为什么即使调用EnableMenuItem菜单项后,菜单项还处于禁止状态 需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项。 //Disable MFC from automatically disabling menu items. m_bAuoMenuEnable=FALSE //Now enable the menu item. CMenu* pMenu=GetMenu () ASSERT_VALID (pMenu) pMenu->Ena...
VC阅读全文
2012-08-02 14:16
⁄ 工业·编程
⁄ 共 11657字
(41) 在不使用通用文件打开对话的情况下如何显示一个文件列表 调用CWnd: : DlgDirList或者CWnd: : DlgDirListComboBox,Windows 将自动地向列表框或组合框填充可用的驱动器名或者指定目录中的文件,下例将Windows目录中的文件填充在组合框中: BOOL CSampleDig : : OnInitDialog ( ) { CDialog : : OnInitDialog ( ) TCHAR szPath [MAX_PATH] = {"c://windows"} int nReslt = DlgDirListComboBox ...
VC阅读全文
2012-08-02 14:15
⁄ 工业·编程
⁄ 共 10028字
(21) 如何获取有关窗口正在处理的当前消息的信息 调用CWnd: : GetCurrentMessage可以获取一个MSG指针。例如,可以使用ClassWizard将几个菜单项处理程序映射到一个函数中,然后调用GetCurrentMessage来确定所选中的菜单项。 viod CMainFrame : : OnCommmonMenuHandler ( ) { //Display selected menu item in debug window . TRACE ("Menu item %u was selected . /n" , (22) 如何在代码中获取工...
VC阅读全文
2012-08-02 14:14
⁄ 工业·编程
⁄ 共 6355字
(1) 如何通过代码获得应用程序主窗口的 指针? 主窗口的 指针保存在CWinThread::m_pMainWnd中,调用AfxGetMainWnd实现。 AfxGetMainWnd() ->ShowWindow(SW_SHOWMAXMIZED) //使程序最大化. (2) 确定应用程序的路径 Use GetModuleFileName 获得应用程序的路径,然后去掉可执行文件名。 Example: TCHAR exeFullPath[MAX_PATH] // MAX_PATH在API中定义了吧,好象是 128 GetModuleFileName(NULL,e...
VC阅读全文
2012-08-02 14:10
⁄ 工业·编程
⁄ 共 11724字
一、改变视图背景色: 在CView的OnDraw函数中添写如下一段程序代码: void CFileNameView::OnDraw(CDC* pDC) { CFileNameDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rectClient; CBrush brushBkColor; GetClientRect(rectClient); brushBkColor.CreateSolidBrush(RGB(255,0,0)); //颜色设置 pDC->DPtoLP(rectClient); pDC->FillRe...
VC, 代码阅读全文
2012-08-02 09:32
⁄ 工业·编程
⁄ 共 784字
如果你当前正在使用vs写了一个工程,那么你想现在就生成一个Lib文件,那么可以直接在“项目属性”上进行修改
项目属性-》配置属性-》常规-》配置类型中修改即可,如下图所示。
lib的使用方法:
(1).h文件,即Lib中函数的声明。
(2)lib,将lib所在目录加入到附加库目录中。如下图所示,我生成的lib名称为API.lib,存放在了d:\Projects\API\Debug路径下面了。
(3)非常重要的一点:千万不要忘记加上下图所示...
VC阅读全文
2012-08-02 09:31
⁄ 工业·编程
⁄ 共 3048字
XML最近被吹的神乎其神,很多数据的交换,包括很多中间件系统,WebService,软件的配置文件,都是在用XML这个技术,的确是个好东西,下面写了个读取XML的代码片段,用的是MSXML的一些接口。
读的是BT软件的配置文件,XML内容如下:
<?xml version="1.0"?>
<BitComet Author="RnySmile" Version="0.1">
<Settings>
...
VC阅读全文
2012-08-02 09:26
⁄ 工业·编程
⁄ 共 545字
1创建静态库
要创建静态库,选择File->New菜单,弹出New对话框。选择Projects标签,在项目类型列表框中选择Win32 Static Library,在Name中输入MyLib,表明要创建一个MyLib.lib的静态库文件,下一步什么也不选,直接完成。
2.加入一个头文件(12345.h),里面加入代码
#ifndef _MYMATH_H
#define _MYMATH_H
extern "C"
{
int MyFunc(int n);//在大括号内进行函数的声明
}
#endif
3.加入一个源文件(5678.cpp...
VC阅读全文
2012-08-02 09:10
⁄ 工业·编程
⁄ 共 1406字
图形为什么会闪烁的原因是:我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。如果将背景刷设置成NULL,这样无论怎样重绘图形都不会闪了。当然,这样做会使得窗口的显示乱...
VC阅读全文
2012-08-02 09:09
⁄ 工业·编程
⁄ 共 4780字
1、将Invalidate()替换为InvalidateRect() Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比起重画那些不需要重画的内容所需要的时间要少得多。 2、禁止系统搽除你的窗口 ...
VC阅读全文