我在一对话框里定义了CMyEdit* m_pEdit;此属于CeditDlg类
CMyEdit是CEdit的派生类//CeditDlg.h
CMyEdit* m_pEdit;
....
//CMyEdit.h
class CMyEdit : public CEdit
{
....
}我想在回车后处理m_pEdit的值,我是应该在PreTranslateMessage重载函数里获得并处理 Cedit的值?还是在 CeditDlg里,
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类 if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_RETURN)
{
.....//这里该怎么写????
return true;
}
} return CEdit::PreTranslateMessage(pMsg);
}在省略号的地方我尝试了:
1:CeditDlg::getNewEditValue();//替换省略号的位置
//以下是函数定义
void CeditDlg::getNewEditValue()
{
m_pEdit->GetWindowText(newEditValue);
return;
}2.创建一CeditDlg指针,来获得m_pEdit的值。但两种方法都出现了问题~
所以请教高人,我想这应该是 在两个类之间传递参数的问题!但不敢确定,望高人指点一二!!!谢谢
CMyEdit是CEdit的派生类//CeditDlg.h
CMyEdit* m_pEdit;
....
//CMyEdit.h
class CMyEdit : public CEdit
{
....
}我想在回车后处理m_pEdit的值,我是应该在PreTranslateMessage重载函数里获得并处理 Cedit的值?还是在 CeditDlg里,
BOOL CMyEdit::PreTranslateMessage(MSG* pMsg)
{
// TODO: 在此添加专用代码和/或调用基类 if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_RETURN)
{
.....//这里该怎么写????
return true;
}
} return CEdit::PreTranslateMessage(pMsg);
}在省略号的地方我尝试了:
1:CeditDlg::getNewEditValue();//替换省略号的位置
//以下是函数定义
void CeditDlg::getNewEditValue()
{
m_pEdit->GetWindowText(newEditValue);
return;
}2.创建一CeditDlg指针,来获得m_pEdit的值。但两种方法都出现了问题~
所以请教高人,我想这应该是 在两个类之间传递参数的问题!但不敢确定,望高人指点一二!!!谢谢
解决方案 »
- RIFF调色板*.pal格式描述是怎样的?
- 调用自编MFC扩展的DLL,在exe的函数中:s2=myDLLF(s1);执行之后,到s3=s2;和s2.freeExtrc();这两个语句会出错,怎样改正呢?
- 散分 祝贺找到了第一份工作~~~~~ 大家不要客气 人者有份!!!!!!!!!
- 怎么得到声卡的音量调节设备?
- 混到三个角了,散分
- 请问:服务器端和客户端之间的数据传递问题
- 关于VC的自定义消息的处理(加急)
- 那里有软件开发工具下载
- 做控件等图标,和框架图形的好工具---------ActiveSkin
- 怎样改变详细列表项的高度
- 用IWebBrowser2中的Navigate2 URL如何编码成UTF-8?
- VC聊天程序数据发送的问题
出现什么问题?
Public:
CString m_strEdit;void CEditDlg::OnOk()
{
m_strEdit = GetDlgItemText(IDC_EDIT);
}然后在打开对话框的地方:
CEditDlg EditDlg;
EditDlg.DoModal();
CString strReturn = EditDlg.m_strEdit;
函数的时候,
1.如果这样调用CeditDlg::getNewEditValue();调试错误:error C2352: “CeditDlg::getNewEditValue”: 非静态成员函数的非法调用
如果把定义函数改为 static void getNewEditValue() ;
调试错误:
: error C2227: “->GetWindowTextA”的左边必须指向类/结构/联合/泛型类型
: error C2597: 对非静态成员“CeditDlg::newEditValue”的非法引用
2.
在相应回车里改为
CeditDlg *tempEdit =new CeditDlg;
想tempEdit ->getNewEditValue();
但是获得的值就应该变了吧,因为又创建了个新的指针tempEdit,而不是原先的