1 响应OnChar事件: 请看我注释的地方 该怎么写?
void CMDIProView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
dc.SetBkMode ( TRANSPARENT );
//dc无法显示成员变量 bool bchinese =false ;
char cTemp[3];
if(nChar==VK_RETURN)
{
HideCaret( this->GetSafeHwnd());
}
else if(nChar==VK_BACK)
{
if(m_nPos>0)
m_nPos--;
if(bchinese)
{
m_xPos=m_xPos-2*sizeof( char );
SetCaretPos( m_xPos, m_yPos );
}
else
{
m_xPos=m_xPos-sizeof( char );
SetCaretPos( m_xPos, m_yPos );
SetCaretPos();
}
m_Str.Delete(m_nPos);
}
else
{
CString sTemp;
//如何判断是否中文字符
cTemp[0]=nChar;
cTemp[1]='\0';
m_Str+=cTemp;
}
dc.TextOut(m_xPos , m_yPos ,m_Str); CView::OnChar(nChar, nRepCnt, nFlags);
}2 接第一个问题:为什么无法显示dc的成员变量? 我选择了自动成员列表的3 响应WM_FILE_Open消息: 请看注释部分:
void CMainFrame::OnFileOpen()
{
// TODO: Add your command handler code here
LPCTSTR lpfilter=" "; //如何过滤自定义文件 *.ncr
CFileDialog OpenDlg (true , NULL ,NULL ,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
lpfilter , NULL);
}
4 如何保存输入的内容
1) 如果是在这里: 怎么写入指定的文件 如: 指定的文件名是save1.ncr
void CMDIProDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//save input words // TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
5 一个基于MDI的和非MDI的应用在CView CFrameWnd CDocment上有什么区别?
在非MDI用CreateView() 创建一个MyView 是否同时要创建CFrameWnd CDocment和CTemplate?并指定他们之间的关系? 而在MDI中是自动完成的?
分不多 问题不难 谢谢
void CMDIProView::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CClientDC dc(this);
dc.SetBkMode ( TRANSPARENT );
//dc无法显示成员变量 bool bchinese =false ;
char cTemp[3];
if(nChar==VK_RETURN)
{
HideCaret( this->GetSafeHwnd());
}
else if(nChar==VK_BACK)
{
if(m_nPos>0)
m_nPos--;
if(bchinese)
{
m_xPos=m_xPos-2*sizeof( char );
SetCaretPos( m_xPos, m_yPos );
}
else
{
m_xPos=m_xPos-sizeof( char );
SetCaretPos( m_xPos, m_yPos );
SetCaretPos();
}
m_Str.Delete(m_nPos);
}
else
{
CString sTemp;
//如何判断是否中文字符
cTemp[0]=nChar;
cTemp[1]='\0';
m_Str+=cTemp;
}
dc.TextOut(m_xPos , m_yPos ,m_Str); CView::OnChar(nChar, nRepCnt, nFlags);
}2 接第一个问题:为什么无法显示dc的成员变量? 我选择了自动成员列表的3 响应WM_FILE_Open消息: 请看注释部分:
void CMainFrame::OnFileOpen()
{
// TODO: Add your command handler code here
LPCTSTR lpfilter=" "; //如何过滤自定义文件 *.ncr
CFileDialog OpenDlg (true , NULL ,NULL ,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
lpfilter , NULL);
}
4 如何保存输入的内容
1) 如果是在这里: 怎么写入指定的文件 如: 指定的文件名是save1.ncr
void CMDIProDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
//save input words // TODO: add storing code here
}
else
{
// TODO: add loading code here
}
}
5 一个基于MDI的和非MDI的应用在CView CFrameWnd CDocment上有什么区别?
在非MDI用CreateView() 创建一个MyView 是否同时要创建CFrameWnd CDocment和CTemplate?并指定他们之间的关系? 而在MDI中是自动完成的?
分不多 问题不难 谢谢
解决方案 »
- 关于CIOCPServer类的GetHostName(SOCKET socket)函数移植到vs2010报错的求助!
- 一个很小的程序,CreateInstance()失败了,是否是参数错误?
- 求助,WideCharToMultiByte转换为gb2312乱码!
- MFC的CImage如何是想png的透明绘制?
- glGenLists(1);
- 将图形转换为字体
- 急急急,二次发贴,100分求高手解决问题。不够再加。
- LoadString(hInstance,IDS_APP_TITLE,wAppTitle,MAXSIZE_APPBUF) 中IDS_APP_TITLE定义问
- 如何将浮点数转化为CString类型?
- 怎样在光盘放入后自动运行一个程序
- 看了就给分
- 怎么样将CString格式(时间)转化成为CTime格式
无法显示成员变量?
------------------
你可以试把工程下的.clw 文件删了重建试,你最好装一个visual assist插件
2
判断中文字符参考
http://search.csdn.net/Expert/topic/917/917219.xml?temp=.2552606
LPCTSTR lpfilter="文件(*.ncr) | *.ncr|视频文件(*.bat) | *.bat |All Files (*.*) | *.* ||"上面就是在文件类型列表框的编辑框要显示“文件(*.ncr)”,而在它的下拉列表框中列出“视频文件(*.avi)、All Files(*.*)”内容
ncr是什么类型的文件,没有用过,在Serialize函数里就是根据文件的格式自己写代码类进行读写。
5
个基于MDI的和非MDI的应用在CView CFrameWnd CDocment上有什么区别?
他们的框架和文档没有什么区别,只是在一个文档上对应有多个视图,你自己建立一个视图的时候如果是新的文档类型就要文档,文档摸班,不是的话就直接和当前的文件关联起来就可以。
error C2660: 'SetCaretPos' : function does not take 2 parameters
error C2660: 'SetCaretPos' : function does not take 2 parameters
我include 了winuser.h 但是还是出现这个错误?
static void PASCAL SetCaretPos( POINT point );ParameterspointSpecifies the new x and y coordinates (in client coordinates) of the caret.指定了插字符的新的x和y坐标(客户坐标)
这个不是包含的问题,是你的函数参数用错了。
ncr是什么类型的文件,没有用过,在Serialize函数里就是根据文件的格式自己写代码类进行读写。
---------------------------------------------------------------------
比如我在视图CView里输入:foewiajfelkfjewif
那么我如何把输入用 ar<< 。 存入文档? ar后面是什么? 不会直接写我输入的东东吧? 换句话说 就是我如何得到我输入的数据? 是CView ::???那个成员函数么?
BOOL SetCaretPos(
int X, // horizontal position
int Y // vertical position
);
Parameters
X
Specifies the new x-coordinate of the caret.
Y
Specifies the new y-coordinate of the caret.
----------------------------------------------
CView能直接输入数据吗?用CEditView CRichEditView吧 你查查MSDN就明白了。