当前位置:编程学习 > VC++ >>

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); 这句啥意思啊!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,