如何将CView窗口中动态生成的按钮子控件数据传送给CView
动态的不需要DoDataExchange关联。
直接用对象操作。
如在View中加入一个编辑框(CEdit类对象),和一个按钮,显示后,在编辑框输入, 在按钮事件函数中就可以提取编辑框中内容。
头文件
class CtestjdtView : public CView
{
protected: // 仅从序列化创建
CtestjdtView();
DECLARE_DYNCREATE(CtestjdtView)
CButton *m_pTestButton;
CEdit *m_pedtMyInput;
// 属性
public:
CtestjdtDoc* GetDocument() const;
。
。
。
映射表
IMPLEMENT_DYNCREATE(CtestjdtView, CView)
BEGIN_MESSAGE_MAP(CtestjdtView, CView)
// 标准打印命令
ON_BN_CLICKED(IDB_TEST_BUTTON, &CtestjdtView::OnTestButton)
ON_COMMAND(ID_FILE_PRINT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, &CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, &CtestjdtView::OnFilePrintPreview)
ON_WM_CREATE()
ON_WM_TIMER()
END_MESSAGE_MAP()
Oncreate()中加入
int CtestjdtView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
CRect rct(20,20,80,40);
m_pTestButton = new CButton();
m_pTestButton->Create(_T("开始"),WS_CHILD|BS_PUSHBUTTON,rct,this, IDB_TEST_BUTTON);
m_pTestButton->ShowWindow(SW_SHOW);
rct.SetRect(80,80,110,100);
m_pedtMyInput = new CEdit();
m_pedtMyInput->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,rct,this, 88888);
m_pedtMyInput->ShowWindow(SW_SHOW);
。
。
。
在按钮事件中提取编辑框内容
void CtestjdtView::OnTestButton()
{
CString str;
if (NULL != m_pedtMyInput)
{
m_pedtMyInput->GetWindowText(str);
}
。
。
。
有问题随时找我。
CRuntimeClass中m_pBaseClass和m_pNextClass的作用?
CRuntimeClass 是一个结构。
它用于运行时获得一个对象的信息及这个对象的基本类。
如果程序链接是静态链接,m_pBaseClass指向它的基类的CRuntimeClass型结构。
如果程序链接是动态链接,要用 m_pfnGetBaseClass
返回 m_pBaseClass。
m_pNextClass 指向与它有关的下一个类,从而使一个对象有了一个大的类信息表。
用途是好封装到 DECLARE_DYNCREATE 和 IMPLEMENT_DYNCREATE里, 让一个类能有动态创建类鹤类的对象的功能。
下面是用visual studio (VC++中MFC)编译的一个程序,出了几个错误,不知道怎么解决,恳请高手帮忙。谢谢
楼上说的对,要是SelectGdiObject还有错,可以将SelectGdiObject换成SelectObject,很可能是这个错误,我在MSDN上未找到这个函数,可能是它错了。
要是是说sin,cos未找到标识符,可以在
stdafx.h中加入#include <math.h> ,但是一般的MFC程序会包含这个头文件,这就很奇怪
pdc->MoveTo (px=(int)x,py);
中的=应该是+吧
pdc->DeleteDC ();这句是错了的,因为原来使用new用堆来动态构造CClient对象,不用了的话,
应该用delete掉,而pdc->DeleteDC ();释放了pdc->m_hDC这个成员变量而已,其他成员数据以及
本身均并没有删除,会发生内存泄露。
还有就是【猪无为】说的
“或者根本就不要new出来CClientDC,给人感觉怪怪的,一般都是直接构造对象,如
CClientDC clientDC(this);
CClientDC* pdc = &clientDC; “
这个说法是不对的,使用new或直接用栈来构造对象都是可以的,没有什么怪不怪的,只是
用new构造对象是一件很复杂的事,需要额外动用很多资源,所以在一般情况下不建议使用
堆(new)来构造对象,再说释放也得自己释放,是件麻烦事。
另外x=30 - 30 * cos(a)句是后边少了“;”的(猪无为)。
关于MFC下把CView类替换为CSCrollView的问题
ew,包括头文件和源文件。
最好用[查找替换]全部替换。
这时运行程序,它会出现一个非法操作,原因是因为CScrollView类要求一些初始信息,你再这个视类中添加一个虚函数OnInitialUpdate(),再里面添加一句初始化代码
SetScrollSizes(MM_TEXT, CSize(800, 600));利用C语言编写 能够画出任意斜率的直线算法程序(利用中点画线法改编)
将DDA算法改成中点划线算法即可
// DDA画线View.cpp : implementation of the CDDAView class
//
#include "stdafx.h"
#include "DDA画线.h"
#include "DDA画线Doc.h"
#include "DDA画线View.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDDAView
IMPLEMENT_DYNCREATE(CDDAView, CView)
BEGIN_MESSAGE_MAP(CDDAView, CView)
//{{AFX_MSG_MAP(CDDAView)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
// Standard mands
ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDDAView construction/destruction
CDDAView::CDDAView()
{
// TODO: add construction code here
}
CDDAView::~CDDAView()
{
}
BOOL CDDAView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CDDAView drawing
void CDDAView::OnDraw(CDC* pDC)
{
CDDADoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
int xx,yy,x2,y2,m,n;
float dx,dy,k,x,y;
int x0=50,y0=500,x1=50,y1=50;
if(x0>x1)
{
m=x0;x0=x1;x1=m;
m=y0;y0=y1;y1=m;
}
dx=x1-x0;
dy=y1-y0;
k=dy/dx;
if(x0==x1)
{
if(y0>y1)
{
n=y0;
y0=y1;
y1=n;
}
for(y2=y0;y2<=y1;)
{
for(n=-10;n<11;)
{
pDC->SetPixel(x0+n,y2,255);
n++;
}
y2=y2+3;
}
}
if(k>=-1&&k<=1.0)
{
y=y0;
for(x2=x0;x2<=x1;)
{
yy=(int)(y+0.5);
for(n=-10;n<11;)
{
pDC->SetPixel(x2,yy+n,255);
n++;
}
y=y+k;
x2++;
}
}
else if(k>1)
{
x=x0;
k=dx/dy;
for(y2=y0;y2<=y1;)
{
xx=(int)(x+0.5);
for(n=-10;n<11;)
{
pDC->SetPixel(xx+n,y2,255);
n++;
}
x=x+k;
y2++;
}
}
else if(k<-1)
{
x=x1;
k=dx/dy;
for(y2=y1;y2<=y0;)
{
xx=(int)(x+0.5);
for(n=-10;n<11;)
{
pDC->SetPixel(xx+n,y2,255);
n++;
}
x=x+k;
y2++;
}
}
// TODO: add draw code for native data here
}
/////////////////////////////////////////////////////////////////////////////
// CDDAView printing
BOOL CDDAView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CDDAView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CDDAView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CDDAView diagnostics
#ifdef _DEBUG
void CDDAView::AssertValid() const
{
CView::AssertValid();
}
void CDDAView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
CDDADoc* CDDAView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDDADoc)));
return (CDDADoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDDAView message handlers
捷锐数据官网商家介绍捷锐数据怎么样?捷锐数据好不好?捷锐数据是成立于2018年一家国人IDC商家,早期其主营虚拟主机CDN,现在主要有香港云服、国内物理机、腾讯轻量云代理、阿里轻量云代理,自营香港为CN2+BGP线路,采用KVM虚拟化而且单IP提供10G流量清洗并且免费配备天机盾可达到屏蔽UDP以及无视CC效果。这次捷锐数据给大家带来的活动是香港云促销,总共放量40台点击进入捷锐数据官网优惠活动内...
日本vps云服务器怎么选择?很多人都会遇到日本vps和日本云服务器怎么选择的问题,日本云服务器具有免备案的特点。小编今天就分析一下日本云服务器价格多少钱,以方便大家选购的时候有个更加合适的取舍。日本云服务器租用前比较选择,高性能、安全、高效、免备案日本云服务器是很关键的因素。那么,日本云服务器该怎么选择呢?日本作为我们的邻国,与其贸易、文化往来是比较多的。日本云服务器价格多少钱一年?一、日本·CN...
快快云怎么样?快快云是一家成立于2021年的主机服务商,致力于为用户提供高性价比稳定快速的主机托管服务,快快云目前提供有香港云服务器、美国云服务器、日本云服务器、香港独立服务器、美国独立服务器,日本独立服务器。快快云专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松快捷运用云计算!多年云计算领域服务经验,遍布亚太地区的海量节点为业务推进提供强大...
implement_dyncreate为你推荐
离线包离线地图,离线导航包有什么区别手机软件开发工具如何自己开发一个app软件netbios协议NetBIOS协议起什么作用?云输入法如何使用QQ云输入法?sms是什么什么是SMS协议爱码验证码平台接码验证码接收平台如何使用?在线沟通什么是在线状态?泛微协同办公系统谁能告诉我泛微OA,协同性是体现在哪几个方面的?泛微有哪些优势??ibooks支持什么格式ibooks支持什么格式的电子书手机在线客服怎么才能联系到腾讯人工客服
新通用顶级域名 fdcservers ix主机 128m内存 韩国电信 godaddy域名优惠码 360抢票助手 轻博 服务器架设 镇江联通宽带 北京主机 爱奇艺会员免费试用 百度云空间 浙江服务器 网站加速 globalsign 监控主机 戴尔主机 企业私有云存储 万根云主机 更多