WinAPI:PageSetupDlg、PagePaintHook
来源:互联网 发布:大数据时代的精准营销 编辑:程序博客网 时间:2024/05/16 12:19
一、PageSetupDlg
函数功能:该函数创建一个PageSetup对话框,此对话框能使用户指定打印页的属性。这些属性包括纸张大小和来源,送纸方向和页边距。
函数原型:BOOL PageSetupDlg(LPPAGESETUPDLGI ppsd);
参数:
Ippsd:指向一个包含初始化对话框信息的PAGESETUPDLG结构。当函数返回时,该结构存放有关用户选择的信息。
返回值:如果用户点击OK钮,返回值为非零值,Ippsp参数指向的PAGESETUPDLG结构中的成员显示用户的选择。如果用户取消或关闭PageSetup对话框或错误出现,返回值为零。
二、PagePaintHook
函数功能:该挂钩函数是一个由应用程序或库定义的回调函数,该回调函数与PageSetup函数一起使用。该函数接收制作PageSetup对话框中样本页绘图的消息。LLPPAGEPAINTHOOK类型定义了一个指向此回调函数的指针。PagePaintHook是由应用程序或库定义的函数名的位置持有者。
函数原型:UINT CALLBACK PagePaintHook(HWND hdlg,UINT uiMsg,WPARAM wParam,LPARAM IParam);
参数:
hdlg:指向pagesetup对话枢窗口的句柄。
uiMsg:标识接收的消息。
wparam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
IParam:指定有关消息的其他信息。精确的意义要根据uiMsg参数的值来决定。
返回值:如果挂钩函数对前三个绘图顺序消息中的任何一个返回值为TRUE。且前三个消息为WM_PSD_PAGESETUPDLG,WM_PSD_FULLPAGERECT或WM_PSD_MINMARGINRECT),对话框不再发送消息。且直到下一次系统需要重画样本页时才绘出样本页。如果对所有的三个消息。挂钩函数返回FALSE,对话框发送给图顺序的保留的消息
三、样例
UINT_PTR CALLBACK PaintHook (HWND hWnd, UINT uiMessage, WPARAM wParam, LPARAM lParam){switch(uiMessage){case WM_INITDIALOG:{int a = 3;}break;default:break;}return 0;}LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){int wmId, wmEvent;PAINTSTRUCT ps;HDC hdc;switch (message){case WM_CREATE:break;case WM_COMMAND:wmId = LOWORD(wParam);wmEvent = HIWORD(wParam);// 分析菜单选择:switch (wmId){case ID_TEST:{PAGESETUPDLG psd; // common dialog box structureHWND hwnd; // owner window// Initialize PAGESETUPDLGZeroMemory(&psd, sizeof(psd));psd.lStructSize = sizeof(psd);psd.hwndOwner = hWnd;psd.hDevMode = NULL; // Don't forget to free or store hDevMode.psd.hDevNames = NULL; // Don't forget to free or store hDevNames.psd.Flags = PSD_INTHOUSANDTHSOFINCHES | PSD_MARGINS | PSD_ENABLEPAGEPAINTHOOK; psd.rtMargin.top = 1000;psd.rtMargin.left = 1250;psd.rtMargin.right = 1250;psd.rtMargin.bottom = 1000;psd.lpfnPagePaintHook = PaintHook;if (PageSetupDlg(&psd)==TRUE){// check paper size and margin values here.}}break;default:{return DefWindowProc (hWnd, message, wParam, lParam) ;}}break;case WM_PAINT:hdc = BeginPaint(hWnd, &ps);// TODO: 在此添加任意绘图代码...EndPaint(hWnd, &ps);break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hWnd, message, wParam, lParam);}return 0;}
- WinAPI:PageSetupDlg、PagePaintHook
- API PageSetupDlg Well, latd1
- WINAPI
- WINAPI
- WINAPI
- WINAPI
- WINAPI
- WINAPI
- WinAPI
- winApi Sample
- WinAPI函数库
- WinAPI函数库
- WinAPI 索引
- WinAPI 索引
- Notes WINAPI
- winapi stuct
- 挂钩WINAPI
- WINAPI WinMain
- delegate
- QT5入门之29 -布局管理器
- 将Tomcat的Session数据存储在 Redis 库
- JavaScript
- Android - TabHost 选项卡功能用法详解
- WinAPI:PageSetupDlg、PagePaintHook
- 网络必备知识小结
- 解决Android下QtQuick.LocalStorage和腾讯开放平台组件冲突问题
- The maximum string content length quota (8192) has been exceeded while reading XML data
- linux条件变量
- javascript注册表单验证实现
- nginx 书
- Linux磁盘与文件系统管理
- kafka原理以及安装