窗口焦点

Liang4 2010-01-14 02:58:40
有一种窗口,切换了焦点就改变,比如说edit里的文本就会全部选择,例如IE地址栏。
还有种窗口,切换以后,焦点还是保持以前那样,比如说word里的光标,
谁知道这2种怎么分辨的?通过窗口属性分辨还是???
...全文
69 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Liang4 2010-01-15
  • 打赏
  • 举报
回复
楼上的你还是没明白我的意思。比如说你在系统中运行了cmd.exe和IE这两个窗口,当你切换的时候,你会发现cmd.exe里窗口的光标是不变的,而IE地址栏里就会全选了地址栏里的内容,这时候我能得到这两个窗口的句柄,但是我怎么来分辨是cmd.exe类型的还是IE地址栏类型的?cmd.exe和word是一个类型的?
地址栏是edit类型,cmd.exe和word.exe都属于另外其他的类。再如:你创建个dlg,默认的,你切换的时候,他的光标也是不变的,和word,cmd都一样的。我就的想分开这2种类型。所以这个跟窗口所属类是没多大关系的。同样的edit,切换可以产生这两种效果。所以我怀疑是不是写在了onactive里,写了一些东西。假如那样,就真的麻烦了
昨夜无风 2010-01-14
  • 打赏
  • 举报
回复
判断句柄的控件类型:


char className[128]={0};
if(GetClassName(hControl,className,sizeof(className)) != 0)
{
if(strcmp(className,"edit",5) == 0)
{
CEdit *pEdit = (CEdit *)FromHandle(hControl);
pEdit -> SetSel(-1,0);
}
}
Liang4 2010-01-14
  • 打赏
  • 举报
回复
楼上的意思是这些代码是写在OnActive这样的地方??那有什么其他办法能解决么?
我只知道系统的2个窗口句柄,其他什么都不知道。。
昨夜无风 2010-01-14
  • 打赏
  • 举报
回复
他们都是Edit,只不过有一个是RichEdit!

你点击全选是程序自己实现的,而不是控件实现的。要想要全选只要:
m_YourEdit.SetSel(-1,0);

不实现的就是Word类型!
Liang4 2010-01-14
  • 打赏
  • 举报
回复
我的意思是系统中,窗口A和窗口B,我知道他们的句柄,怎么能分辨窗口A就是IE地址栏类型的,还是word类型的?
zhucde 2010-01-14
  • 打赏
  • 举报
回复
全部选择的是由程序控件的, CEdit控件本身就支持全选(你也可以选择你想要选择的字符)功能, 好像是SetSel吧
rogs3210 2010-01-14
  • 打赏
  • 举报
回复
属性设置或代码修改

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧