非常感谢zhangzhonghua大哥细致的解释,和推荐的图书:控件是什么我已基本明白,但请问一下您给我举的例子中是不是写成 m_hwndEdit=CreateWindow(...,"Edit", ...);这样才可以保存创建窗口的句柄, 还是在OnCreate()中保存创建窗口的句柄,还是……?另外我查阅了MSDNHWND CreateWindow( LPCTSTR lpClassName, // pointer to registered class name LPCTSTR lpWindowName, // pointer to window name DWORD dwStyle, // window style int x, // horizontal position of window int y, // vertical position of window int nWidth, // window width int nHeight, // window height HWND hWndParent, // handle to parent or owner window HMENU hMenu, // handle to menu or child-window identifier HANDLE hInstance, // handle to application instance LPVOID lpParam // pointer to window-creation data );但不知“Edit”是那个参数(又见笑了)是第一个参数吗?望明示!!我仔细看过#主厨推荐 侯捷菜单#发现其中适合初学SDK的只有Programming Windows (5/e) 但不知是否有中译本?翻译质量怎样??如没中译本,不知能否再推荐1、2本或告知download地址(英文电子版勉强能看(有金山词霸译起来较快))???也非常欢迎其它大虾一同回答!!!!!!!!! 再一次表示感谢,不好意思给大家添麻烦了!
你真的应该先看Programming Windows,把深入浅出先放一边去吧,效率会快很多。 我的建议顺序: 1、Programming Windows 95 2、C++编程思想 3、深入浅出MFC相关书籍的信息: http://www.zzh-cn.com/books/books-list.htm
vcl 是java 的什么东西吗,能解释一下吗?我用的是MFC
VCL(Visual Component Library)跟MFC一样也是一种类库,不过是Borland出的而已。
to babysloth
edit控件和edit box一不一样,能不能顺便把最后一句话给解释一下,我有信誉一定加分
而MFC里的CEdit就是对它的包装而已。其实就是Edit Box,在MSDN里有详细的解释。
我更习惯用VCL,所以MFC不敢随便乱说。我想作者的意思应该是EditBox的内容其实并不是类
CEdit的一部分,不过也可以Serialize,写了再读进来。
忘了提醒您一下,VCL是C++类库,别搞成JAVA的了。
class CEdit : public CWnd
{
protect:
int m_nWidth;
int m_nHeight;
char m_szRawText[65536];
public:
virtual void SerializeRaw(CArchive& ar);
virtual void Serialize(CArchive& ar);
}CEdit::SerializeRaw(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_szRawText;
}
else
{ ...}
}
CEdit::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar << m_nWidht;
ar << m_nHeight;
SerializeRaw();
}
else
{ ...}
}你的“Edit box”高300, 宽400,写有字“深入浅出MFC”,那么,SerializeRaw只保存字“深入浅出MFC”,而Serialize把高300, 宽400也保存起来。
SDK编程比较好的有一本Programming Windows
那么每一个控件是不是就应该有唯一对应的类?不。控件是一种窗口,用HWND句柄来标识。
class A
{
protect: HWND m_hwndEdit;
A();
}
class B
{
protect: HWND m_hwndEdit;
B();
}
A::A()
{ CreateWindow(...,"Edit", ...)
}
B::B()
{ CreateWindow(...,"Edit", ...)
}
都是可以的。如果这些控件包在dll里,那他对应的类在那里??这些控件是不是windows一开机动态生成的???
错,任何程序要产生控件,最终总得调用Win32 API: CreateWindow。我没有SDK编程的基础,我觉得学一下很有必要,能推荐几本书吗??
绝对有必要!!主厨推荐 侯捷菜单:
http://www.zzh-cn.com/books/jjhou-books-list.htm
我觉得不对,WINDOWS里的控件归根结底是一块内存数据,这块数据是通过调用Win32 API: CreateWindow分配的,不应说它包在DLL里。
m_hwndEdit=CreateWindow(...,"Edit", ...);这样才可以保存创建窗口的句柄,
还是在OnCreate()中保存创建窗口的句柄,还是……?另外我查阅了MSDNHWND CreateWindow(
LPCTSTR lpClassName, // pointer to registered class name
LPCTSTR lpWindowName, // pointer to window name
DWORD dwStyle, // window style
int x, // horizontal position of window
int y, // vertical position of window
int nWidth, // window width
int nHeight, // window height
HWND hWndParent, // handle to parent or owner window
HMENU hMenu, // handle to menu or child-window identifier
HANDLE hInstance, // handle to application instance
LPVOID lpParam // pointer to window-creation data
);但不知“Edit”是那个参数(又见笑了)是第一个参数吗?望明示!!我仔细看过#主厨推荐 侯捷菜单#发现其中适合初学SDK的只有Programming Windows (5/e)
但不知是否有中译本?翻译质量怎样??如没中译本,不知能否再推荐1、2本或告知download地址(英文电子版勉强能看(有金山词霸译起来较快))???也非常欢迎其它大虾一同回答!!!!!!!!!
再一次表示感谢,不好意思给大家添麻烦了!
我的建议顺序:
1、Programming Windows 95
2、C++编程思想
3、深入浅出MFC相关书籍的信息:
http://www.zzh-cn.com/books/books-list.htm
http://www.csdn.net/expert/Topic/72790.shtm 领分zhangzhonghua大哥:35
babysloth大哥:15我会努力提高自己的分数(正规渠道),下次不会这么少了!!!