描述:
我想实现这样一个activex(用atl来做),用鼠标在上边画图形,有时要求输入部分内容,这就用到了edit,问题是在atl中如何动态的生成edit,是不是要先有一个对话框啊?我在用mfc做activex时是不需要什么对话框的,直接new 一个edit就可以了,但在atl下就不知如何产生了,希望大家能帮个忙
解决方案1:
你看看这个例子,其中的DataGrid的双击输入,就是在一个自已创建的Edit上的,其中CMyWindow这类就是一个从Edit上继成过来的,创建语法为
CMyWindow* _edit1;
_edit1 = new CMyWindow;
DWORD dwStyle = ES_LEFT;
dwStyle &= ~WS_CAPTION;
if (nFormat & DT_RIGHT) dwStyle = ES_RIGHT;
else if (nFormat & DT_CENTER) dwStyle = ES_CENTER;
dwStyle |= WS_CHILD | ES_AUTOHSCROLL;
_edit1->Create(hwnd,*rect,NULL,dwStyle);
_edit1->SetParent(hwnd);
_edit1->SetWindowText(szText);//, nChar);
_edit1->SetWindowPos(HWND_TOP,rect,SWP_SHOWWINDOW);
_edit1->SetSel(0,strlen(szText));
_edit1->SetCell(this,row,col);
_edit1->SetFocus();
网面名:http://www.codeproject.com/atl/gridctrl_atl.asp