VC雕虫小技集(六)

何志丹

1,,如何取得Tree Control上的CheckBox状态~

OnInit中加:

m_treeCtrl.InsertItem("item1");

m_treeCtrl.InsertItem("item2");

void CCDialogDlg::OnButton1()

{

HTREEITEM hItem = m_treeCtrl.GetRootItem();

while(NULL != hItem)

{

CString str= m_treeCtrl.GetItemText(hItem);

if("item2" == str)

{

if(m_treeCtrl.GetCheck(hItem))

AfxMessageBox("选中");

}

hItem = m_treeCtrl.GetNextVisibleItem(hItem);

}

}

2,怎么用一个程序向另一个程序发送字符并让其显示出来

首先通过FindWindow取得windows程序的窗口句柄,

然后通过GetDlgItem取得其中输入框的窗口句柄,

最后,向该窗口句柄发送WM_CHAR消息即可显示字符

例如,对于Notepad窗口,可以以如下的方式向其中输入一个'a':

取得记事本的窗口句柄

HWND hWnd = ::FindWindow( NULL  , "未定标题 - 记事本" );

取得其中输入框的窗口句柄

HWND hEdit = ::GetDlgItem( hWnd , 0x0F );  // 这里0x0F是编辑框的ID,可在SPY++中观察得到

向输入框中填写'a'

::SendMessage( hEdit , WM_CHAR , (WPARAM)'A' , 0x00000001 );

3, 当前时间:

CTime t  = CTime::GetCurrentTime();

CString str;       str.Format("%d-%d-%d",t.GetYear(),t.GetMonth(),t.GetDay());

str+= t.Format("--%H-%M-%S");

AfxMessageBox(str);

一定要用CTime::GetCurrentTime();GetCurrentTime()是一个过时的函数.

4, //改变按钮的背景色。

HBRUSH CRectWindow2View::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

{

HBRUSH hbr = CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

switch (nCtlColor)

{

case CTLCOLOR_BTN:

{

CBrush Brush (RGB (128 , 0 , 128) );//你的颜色

CBrush* pOldBrush = pDC->SelectObject(&Brush);

pDC->SelectObject (pOldBrush );

}

}

return CFormView::OnCtlColor(pDC, pWnd, nCtlColor);

}

5, 加速键的使用.

在Dlg的头文件中加入:

HACCEL m_hAccel;

在Dlg的构造函数中加载加速键:

基于对话框的程序如何使用加速键?

m_hAccel=::LoadAccelerators(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_ACCELERATOR1));//加速键ID

重载PreTranslateMessage函数:

BOOL CDlg::PreTranslateMessage(MSG* pMsg)

{

// TODO: Add your specialized code here and/or call the base class

if(m_hAccel!=NULL)

if(::TranslateAccelerator(m_hWnd,m_hAccel,pMsg))

return TRUE;

return CDialog::PreTranslateMessage(pMsg);

}

6,怎么把一个文件保存到其它地方?

if(!CopyFile("f://he.txt","d://he1.txt",true))

{

if(IDOK == MessageBox("有同名文件,你要覆盖吗?",NULL,MB_OKCANCEL))

{

CopyFile("f://he.txt","d://he1.txt",false);

}

else

return;

}

DeleteFile("f://he.txt");

VC雕虫小技集(六)的更多相关文章

  1. ACM题集以及各种总结大全!

    ACM题集以及各种总结大全! 虽然退役了,但是整理一下,供小弟小妹们以后切题方便一些,但由于近来考试太多,顾退役总结延迟一段时间再写!先写一下各种分类和题集,欢迎各位大牛路过指正. 一.ACM入门 关 ...

  2. window系统上实现mongodb副本集的搭建

    一.问题引出 假设我们生产上的mongodb是单实例在跑,如果此时发生网络发生问题或服务器上的硬盘发生了损坏,那么这个时候我们的mongodb就使用不了.此时我们就需要我们的mongodb实现高可用, ...

  3. 皓远的第二次博客作业(最新pta集,链表练习及期中考试总结)

    前言: 知识点运用:正则表达式,有关图形设计计算的表达式和算法,链表的相关知识,Java类的基础运用,继承.容器与多态. 题量:相较于上次作业,这几周在java方面的练习花了更多的精力和时间,所要完成 ...

  4. [bzoj\lydsy\大视野在线测评]题解(持续更新)

    目录: 一.DP 二.图论 1.最短路 2.强连通分量 三.利用单调性维护 四.贪心 五.数据结构 1.并查集 六.数学 1.计数问题 2.数学分析 七.博弈 八.搜索 /////////////// ...

  5. cs模式与bs模式

     关于CS(Client-Server)模式和BS(Browser-Server)模式的水很深,盆地自己也认为对此了解不够透彻,但作为手机客户端设计,如果不对CS.BS做一定程度的了解,是很容易出现一 ...

  6. DeepLearning.ai学习笔记(三)结构化机器学习项目--week1 机器学习策略

    一.为什么是ML策略 如上图示,假如我们在构建一个喵咪分类器,数据集就是上面几个图,训练之后准确率达到90%.虽然看起来挺高的,但是这显然并不具一般性,因为数据集太少了.那么此时可以想到的ML策略有哪 ...

  7. Visual Studio 2017 Enterprise (15.3)

    版本15.3更新在用户离线下载时更加人性化,包含了进度显示,下载出错可以输入R,进行下载的重新尝试,并在当前下载框下继续下载为完成的作业,结合 --layout 参数的离线文件的检查和修复,并且在下载 ...

  8. 《深入浅出mfc》 第1章 笔记

    需要什么函数库(.lib) windows支持动态链接库,应用程序所调用 的windows api 函数是在“执行期间“才链接上的.Windows程序调用 可以分为 C Runtimes以及windo ...

  9. MongoDB 走马观花(全面解读篇)

    目录 一.简介 二.基本模型 BSON 数据类型 分布式ID 三.操作语法 四.索引 索引特性 索引分类 索引评估.调优 五.集群 分片机制 副本集 六.事务与一致性 一致性 小结 一.简介 Mong ...

  10. iOS:探究视图控制器的转场动画

    一.介绍 在iOS开发中,转场动画的使用无处不见,不只是我们自己更多的使用UIViewblock动画实现一个转场动画,其实,在我们实现VC控制器跳转的时候都是转场动画的实现,例如标签栏控制器的切换.模 ...

随机推荐

  1. SciTech-Mathmatics-Probability+Statistics: Distribution : The Uniform Distribution

    SciTech-Mathmatics-Probability+Statistics: Distribution : The Uniform Distribution BY ZACH BOBBITTPO ...

  2. POLIR-Society-Organization-Mind-真实社论: 守护好自我能量场:{气定心定,心定事顺} + 常政"平凡生活" + 不需要去应答负能量事情

    守护好自我能量场心定事顺 少在烂事上纠缠,少为不值得的人生气烦心. 守护好自己的能量场: 气定心定, 心定事顺. 不需要去应答负能量事情 凡是负能量的事情, 都不需要去应答. 凡是应答, 必将与其纠缠 ...

  3. 04Java基础语法之包机制

    包机制 为了更好的组织类,Java提供了包机制,用于区别类名的命名空间. 包语句的语法格式为: package pkg1[. pkg2[. pkg3...]]; 一般会使用公司域名倒置作为包名: 例如 ...

  4. 02Java基础语法之类型转换、变量、常量

    类型转换 由于Java是强类型语言,所以做某些运算的时候需要用到类型转换 按照占用空间大小排序如下: 低 ------------------------------------------> ...

  5. 使用 chezmoi & vscode, 管理你的 dotfiles

    什么是 dotfiles In Unix-like operating systems, any file or folder that starts with a dot character (fo ...

  6. .NET4通过HTTP操作MINIO

    MINIO是提供.NET SDK的,但是这么老的版本没找到,于是使用http的方式直接调用,方便简单. 我这里需求不复杂,只需要上传下载删除即可,如果后续有需求再补充方法. 核心代码MinioHttp ...

  7. java 安装及环境配置

    下载 下载 Java SE Development Kit 8 安装 我的安装路径是 D:\Programs\Java\jdk1.8.0_291 配置环境 搜索框中输入 "env" ...

  8. jQuery高级选择符与遍历

    1.HTML代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  9. 由于要给小型嵌入linux开发系统界面,希望基于Avalonia.x11 实现,请提供思路和主要技术线路

    要在嵌入式Linux系统上使用Avalonia创建用户界面,特别是基于Avalonia.X11实现,你需要遵循以下思路和技术路线.Avalonia是一个跨平台的XAML框架,用于.NET应用程序,支持 ...

  10. git pull --rebase 变基

    使用下面的关系区别下面这两个操作: git pull = git fetch + git merge git pull --rebase = git fetch + git rebase 现在我们有这 ...