www.vckbase.com
www.vchelp.net
maybe had soem example
www.vchelp.net
maybe had soem example
解决方案 »
- 我想做个游戏但是怎样取一个键盘的键
- SDI菜单如何加入图标?????????????
- 请问如何利用stl变量存储char test[100][200]={"tttt",....."ddd"};中的字符串呢?
- 高手来讨论!在线!
- 如何获得当前IE地址栏中的字符串的值
- 请问微软拼音输入法的Candidiate条(就是组字的时候下面显示候选的那个条)是窗口吗?能得到它的句柄吗?
- 如何得到一个程序的运行后的返回值?
- 请问*.fax是什么文件格式啊,该用什么软件打开呀?谢谢了
- 如何用ADO中的_RecordsetPtr对象做参数(变量)查询?
- 我用Matlab将.m文件生成dll文件,调用是出错“DLL 调用约定错误"怎么处理啊!
- ★-高手请进,多谢多谢!
- wtl 里面如何得到对话框的 hWnd?
{
pDC->SetBkColor(::GetSysColor(COLOR_WINDOW));
pDC->SetBkMode(TRANSPARENT);
return TRUE;
}
1、继承Cedit类
2、重载OnEraseBkgnd函数内容如下
CBitmap bitmap;
CDC dcMemory;
CRect rect;
bitmap.LoadBitmap(IDB_BITMAP1);
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&bitmap);
GetClientRect(rect); pDC->BitBlt(-2,-2,rect.Width(),rect.Height(),&dcMemory,0,0,SRCCOPY);
return TRUE;
很简单,就是显示一个文本框的背景图片,不用多解释吧!pDC->BitBlt内的参数需要自己调试一下,否则有可能对不齐,这也是一个不大不小的问题,不过对于定长的文本框和图片还是可以表现得很完美的!
3、重载OnGetDlgCode函数,这可能是大家比较想不到的地方(我也是)
这是重载CWnd的一个函数,作用是:为控件调用这个函数,使控件能够自己处理输入的箭头键和TAB键,。通过重载OnGetDlgCode,CWnd控件可以选择处理特定类型的输入。如果大家不明白,自己看MSDN。反正把输入焦点移动到CEdit上,就要调用这个函数就对了。这里重画该控件即可
RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE );
return CEdit::OnGetDlgCode();剩下的问题就好办了,重载OnMouseMove函数,因为你有可能会拖动鼠标来选择文本框的文本,也是重画该文本框即可。当然你还要重载OnLButtonDown之类的函数来判断鼠标是否实在按下左件的状态进行脱动。使用方法就不用多说了吧!!!用SubclassDlgItem()搞定!
1、继承Cedit类
2、重载OnEraseBkgnd函数内容如下
CBitmap bitmap;
CDC dcMemory;
CRect rect;
bitmap.LoadBitmap(IDB_BITMAP1);
dcMemory.CreateCompatibleDC(pDC);
dcMemory.SelectObject(&bitmap);
GetClientRect(rect); pDC->BitBlt(-2,-2,rect.Width(),rect.Height(),&dcMemory,0,0,SRCCOPY);
return TRUE;
很简单,就是显示一个文本框的背景图片,不用多解释吧!pDC->BitBlt内的参数需要自己调试一下,否则有可能对不齐,这也是一个不大不小的问题,不过对于定长的文本框和图片还是可以表现得很完美的!
3、重载OnGetDlgCode函数,这可能是大家比较想不到的地方(我也是)
这是重载CWnd的一个函数,作用是:为控件调用这个函数,使控件能够自己处理输入的箭头键和TAB键,。通过重载OnGetDlgCode,CWnd控件可以选择处理特定类型的输入。如果大家不明白,自己看MSDN。反正把输入焦点移动到CEdit上,就要调用这个函数就对了。这里重画该控件即可
RedrawWindow(NULL, NULL,RDW_INVALIDATE | RDW_ERASE );
return CEdit::OnGetDlgCode();剩下的问题就好办了,重载OnMouseMove函数,因为你有可能会拖动鼠标来选择文本框的文本,也是重画该文本框即可。当然你还要重载OnLButtonDown之类的函数来判断鼠标是否实在按下左件的状态进行脱动。使用方法就不用多说了吧!!!用SubclassDlgItem()搞定!哦,还要罗嗦一句,在该控件的的对话框的OnCtlColor函数中要把背景色为透明
if((nCtlColor == CTLCOLOR_EDIT) && (pWnd->GetDlgCtrlID()==IDC_EDIT1))
{
pDC->SetBkMode(TRANSPARENT); //设置背景透明,这样,输出字符的时候就是所谓的空心字,而不是有白的底色
pDC->SetTextColor(RGB(255,0,0)); //改变字体的颜色
return HBRUSH(GetStockObject(HOLLOW_BRUSH));}