有如下情形:
在程序某处会显示一段文字,单击的时候不响应,双击的时候即响应可以修改该文字,但是edit貌似没有这功能,所以在static的地方create一个edit然后覆盖在static上,当修改完成后将值传给static再销毁edit.
但是新问题又来了,怎么判断edit的焦点的是否还在,比如正在输入值的时候,鼠标点击了其他程序,那么此时焦点应该在其它程序上了(任意时候,焦点只要一个我这样理解不知是否有问题),那么此时应该通知edit当输入完成的情况处理,即传值后销毁.但是我不知道怎么判断焦点是否已经转移(当然可以利用定时器对edit进行判断,不过方法貌似笨了点),还有其他方法吗?如果还有不明白的,可以看一下QQ的个性签名那地方(QQ那里是单击即可修改),当你正在输入的时候,你再去点一下其他程序,此时QQ个性签名就认为已经修改完成然后发布了,我也想做一个相同效果的不过是双击修改,请问怎么做呢?
首先谢谢各位的热心帮助了!
在程序某处会显示一段文字,单击的时候不响应,双击的时候即响应可以修改该文字,但是edit貌似没有这功能,所以在static的地方create一个edit然后覆盖在static上,当修改完成后将值传给static再销毁edit.
但是新问题又来了,怎么判断edit的焦点的是否还在,比如正在输入值的时候,鼠标点击了其他程序,那么此时焦点应该在其它程序上了(任意时候,焦点只要一个我这样理解不知是否有问题),那么此时应该通知edit当输入完成的情况处理,即传值后销毁.但是我不知道怎么判断焦点是否已经转移(当然可以利用定时器对edit进行判断,不过方法貌似笨了点),还有其他方法吗?如果还有不明白的,可以看一下QQ的个性签名那地方(QQ那里是单击即可修改),当你正在输入的时候,你再去点一下其他程序,此时QQ个性签名就认为已经修改完成然后发布了,我也想做一个相同效果的不过是双击修改,请问怎么做呢?
首先谢谢各位的热心帮助了!
afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam);
我觉得是不是应该添加EN_KILLFOUCS消息?
我的edit是动态创建的,不知道怎么去加入EN_KILLFOUCS消息,是不是WM_KILLFOUCS这个消息啊?
谢谢各位!问题已经解决,重载OnCommand函数,判断对话框的焦点即可!if(HIWORD(wParam)==EN_KILLFOCUS)//失去焦点则在下面处理传值销毁的代码即可!
{
......
}