我在做一个对话框的打印预览,就是预览打印的东西是对话框中的,文字是可以实现。 我是参考其他的文章,自己建了个frame类和view类,下面是预览窗口显示的具体代码。
比如:在函数中,可以这样做
在.h文件中定义
UINT m_cxOffset;
UINT m_cyPrinter;
LRESULT CDayinyulan923Dlg::OnMyPrint(WPARAM wParam,LPARAM lParam)
{ CString as="公交卡第六感觉";
pDC->TextOut(30*m_cyPrinter,10*m_cxOffset,as);
}
这样就实现了文章的显示
对于工程中有的图片,可以用 HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),(LPCTSTR)IDB_BITMAP1);来实现
IDB_BITMAP1就是工程中的ID号。
问题:
1) 可是比如说我在对话框中加入了一个静态图片,那么我怎么把它在预览中显示呢?
2) 而且有可能我是用插件做的图,比如teechart,那么我又怎么把teechart的图在预览中实现呢?
比如:在函数中,可以这样做
在.h文件中定义
UINT m_cxOffset;
UINT m_cyPrinter;
LRESULT CDayinyulan923Dlg::OnMyPrint(WPARAM wParam,LPARAM lParam)
{ CString as="公交卡第六感觉";
pDC->TextOut(30*m_cyPrinter,10*m_cxOffset,as);
}
这样就实现了文章的显示
对于工程中有的图片,可以用 HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),(LPCTSTR)IDB_BITMAP1);来实现
IDB_BITMAP1就是工程中的ID号。
问题:
1) 可是比如说我在对话框中加入了一个静态图片,那么我怎么把它在预览中显示呢?
2) 而且有可能我是用插件做的图,比如teechart,那么我又怎么把teechart的图在预览中实现呢?
2.你那个什么插件?只要做出来的图片用LoadBitmap引入即可
不好意思哈,我是个菜鸟我有两个问题想问一下
一:bitblt的用法:上面写的什么句柄什么的,我不是太理解,有一段代码是这样的
CDC* pDC = (CDC*)wParam;
HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),(LPCTSTR)IDB_BITMAP1);
pDC->CreateCompatibleDC(NULL);
SelectObject(*pDC,tempBmp);
pDC->MoveTo(0,0); //绘图
pDC->LineTo(10,10);
pDC->BitBlt(0,0,20,20,pDC,0,0,SRCCOPY);
可是这样不行啊,调试通不过,错误在哪里呢?
IDB_BITMAP1是我添加在工程中的图片。
二:假如我仅仅是在对话框中添加了一个静态的图片id为IDC_STATIC1 成员变量为m_static1
我用了这样的语句:
HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),(LPCTSTR)m_static1);
也报错了~
是怎么回事呢?
希望你能看下帮帮忙哈,谢谢你了
BitBlt (目标hDC, 目标X, 目标Y, 图像高, 图像宽, 源hDC, 源X, 源Y, 光栅运算常数)一:这个函数中目标hdc就是我的预览口,那么原hdc是什么呢?如果我是在对话框中有一副图,那个这个源hdc是不是就是那个对话框的对象呢?还是对话框的ID号?
二:如果把对话框中显示的图片预览,是不是就是相当于在这个函数中,对话框就是源hdc 源x,源y就是图片在在对话框框中的坐标。目标hDC, 目标X, 目标Y, 图像高, 图像宽,就是目标设备里的图像的显示位置了。如果是这样的话那么函数该怎么写呢?我如何得到对话框中的图片的坐标呢?是个新手,刚刚做这个东西,很多基本的概念还不是太清楚,请各位见谅了哈~
这样应该可以吧,你搞不清楚句柄就用默认的。
可是是这样的一个问题我添加的静态图片,或者用插件做的图片在工程里是没有id的啊~
请看看下面的:
二:假如我仅仅是在对话框中添加了一个静态的图片id为IDC_STATIC1 成员变量为m_static1
我用了这样的语句:
HBITMAP hBitmap=::LoadBitmap(AfxGetInstanceHandle(),(LPCTSTR)m_static1);
也报错了~