windows编程按键消息
case VK_DELETE:
for (x = xCaret ; x < cxBuffer - 1 ; x++)
BUFFER (x, yCaret) = BUFFER (x + 1, yCaret) ;
BUFFER (cxBuffer - 1, yCaret) = ' ' ;
HideCaret (hwnd) ;
hdc = GetDC (hwnd) ;
SelectObject (hdc, CreateFont (0, 0, 0, 0, 0, 0, 0, 0,
dwCharSet, 0, 0, 0, FIXED_PITCH, NULL)) ;
TextOut (hdc, xCaret * cxChar, yCaret * cyChar,
& BUFFER (xCaret, yCaret),
cxBuffer - xCaret) ;
DeleteObject (SelectObject (hdc, GetStockObject (SYSTEM_FONT))) ;
ReleaseDC (hwnd, hdc) ;
ShowCaret (hwnd) ;
break ;
这段代码是什么意思?求解
追问:&BUFFER (xCaret, yCaret)
为什么要输出这一句?什么意思?
答案:你没有贴上来BUFFER 的宏定义,但可以看出BUFFER肯定指的是存储当前屏幕上的文本的缓冲区。
for (x = xCaret ; x < cxBuffer - 1 ; x++)
BUFFER (x, yCaret) = BUFFER (x + 1, yCaret) ;
删除光标所在位置字符,所有后面的字符依次向前移
SelectObject (hdc, CreateFont (0, 0, 0, 0, 0, 0, 0, 0,
dwCharSet, 0, 0, 0, FIXED_PITCH, NULL)) ;
选择字体
TextOut (hdc, xCaret * cxChar, yCaret * cyChar,
& BUFFER (xCaret, yCaret),
cxBuffer - xCaret) ;
在指定位置输出文本
显然这样就实现了典型的按Delete键删除光标所在位置字符的工作。
上一个:输出三者中的最大值,请问我写的错在哪啊?(我是初学者)呵呵~大家帮帮忙
下一个:GetDlgItem(IDC_SAMPLE)->GetWindowRect(&rect); 这句啥意思啊!!