如SDI主框架窗口的类名为Afx:400000:b:10011:6:400203等,将基改成MyMainWnd之类的自己定义类名,当然是不能改变其实它的窗口处理函数之类的
解决方案 »
- 做VC++Erp项目都有哪些设计模式?
- GDI+ DrawImage后位图不能在被 DC选入
- 高分求助怎么在VC6.0下中调用CoCreateGUID这个API函数,我想生成唯一的标识!
- m_Chart.EditCopy()的问题
- 怎样通过代码实现CTRL+C和CTRL+V的功能?
- 一个简单的问题!(关于类型转换) 在线等。。。。。。。。。
- CArchive叫我如此郁闷!!!
- 如何把GDI标注与图像一起保存为位图?
- 在关键字 'INSERT' 附近有语法错误。未能准备语句.怎么解决。
- 关于文件的读取问题.
- 如果退出用afxbeginthread生成的线程?
- 紧急求援:postMessage怎么会导致程序发行版崩溃???
在ATL中有一个宏DECLARE_WND_CLASS来指定产生窗口的类名,不知道大家有没其他方法.不过在PreCreateWindow(CREATESTRUCT& cs)中直接改cs的方法是不行的
cs.lpszClass=LPSTR("MyMainWnd");这样没有类注册,所以在得到类时会失败
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
cs.lpszClass = AfxRegisterWndClass(0);
//*************修改主窗口类名***********************************************
WNDCLASS wndclass;
::GetClassInfo(AfxGetInstanceHandle(),cs.lpszClass,&wndclass);
wndclass.lpszClassName="N5_GameRuner";
VERIFY(AfxRegisterClass(&wndclass));
//cs.hMenu=NULL;
cs.lpszClass=wndclass.lpszClassName;
return TRUE;
}
GetClassInfo(...);
然后可以修改其中的类注册成员,但是我发现在系统注册的预定义类中有一些行为是无法改变的比如:STATIC类中的光标
也许这样的信息会给你一点帮助
struct. See KB article Q251059 - HOWTO: Provide Your Own Window Class Name for an MFC
Dialog Box