gpt4 book ai didi

c++ - 子类化编辑文本控件以在按下 shift 时接受小写字符

转载 作者:太空宇宙 更新时间:2023-11-04 14:12:20 27 4
gpt4 key购买 nike

我有一个编辑文本控件,我想将其子类化为在按下 SHIFT 键时允许使用小写字符,因为默认情况下该控件只允许接受大写字符。

所以我的问题是如何将控件中的键入模式从小写更改为大写。

我正在使用 WIN32,我成功地捕获了 WM_CHAR 事件:WNDPROC ancienneEditProc; LRESULT CALLBACK EditTextProc(HWND hwnd,UINT mssg,WPARAM wParam,LPARAM lParam){ 开关(消息) {
案例 WM_CHAR: { 字符[2]; 字符[0] = (char)wParam; 字符[1] = 0; 如果(HIWORD(GetKeyState(VK_SHIFT))) { AnsiLower(字符); } wParam = 字符[0]; } 休息; } 返回 CallWindowProc(ancienneEditProc, hwnd, mssg, wParam, lParam);}但问题是我如何在捕获 WM_CHAR 后更新编辑文本控件以接受小写字母。

最佳答案

我假设您正在使用 win32 或 MFC 文本编辑器。只需捕获 WM_CHAR 事件即可。

在 MFC 上,使用消息映射:

在你的 .h 中

class YourEdit public CEdit
{
afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
DECLARE_MESSAGE_MAP()
};

在你的 .cpp 中

BEGIN_MESSAGE_MAP(YourEdit, CEdit)
ON_WM_CHAR()
END_MESSAGE_MAP()

YourEdit::::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
nchar = toupper(nchar);
CWnd::OnChar(nChar,nRepCnt,nFlags);
}

参见:http://msdn.microsoft.com/en-us/library/3zzfkd75%28v=vs.71%29.aspx

关于c++ - 子类化编辑文本控件以在按下 shift 时接受小写字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13585307/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com