当前位置: 首页 > news >正文

怎么查网站icp专业建设网站应该怎么做

怎么查网站icp,专业建设网站应该怎么做,各网站的网络联盟,宁波建设网站哪家好需求#xff1a;要在标签模板上加上文字、条型码、二维码 找准坐标和字体大小 我生成标签时#xff0c;需要对齐和 调文字字体大小。这工具微调 能快速知道位置 和字体大小。 标签设计(点击图片#xff0c;上下左右箭头移动 或-调字体) 已经够用了#xff0c;滚动条还没完…需求要在标签模板上加上文字、条型码、二维码 找准坐标和字体大小 我生成标签时需要对齐和 调文字字体大小。这工具微调 能快速知道位置 和字体大小。 标签设计(点击图片上下左右箭头移动 或-调字体) 已经够用了滚动条还没完全实现如果能拖动文字、条型码、二维码到上面就更好了就是有太多参数需要设置。 在MFCMicrosoft Foundation Classes中要实现在一个图片控件上移动鼠标时显示图片控件内鼠标位置的水平和垂直辅助线你可以通过处理鼠标移动事件来绘制这些辅助线。以下是一个简化的示例展示了如何在一个继承自CStatic的类中实现这个功能。 首先你需要创建一个新的类继承自CStatic并在这个类中处理WM_MOUSEMOVE消息来绘制辅助线。 // PictureControl.h #pragma once#include afxwin.hclass CPictureControl : public CStatic { public:CPictureControl();virtual ~CPictureControl();protected:afx_msg void OnMouseMove(UINT nFlags, CPoint point);DECLARE_MESSAGE_MAP()void DrawCrossHair(CPoint point); };在.cpp文件中你需要实现OnMouseMove和DrawCrossHair方法。OnMouseMove方法会在鼠标移动时被调用而DrawCrossHair方法用于在控件上绘制辅助线。 // PictureControl.cpp #include PictureControl.hBEGIN_MESSAGE_MAP(CPictureControl, CStatic)ON_WM_MOUSEMOVE() END_MESSAGE_MAP()CPictureControl::CPictureControl() { }CPictureControl::~CPictureControl() { }void CPictureControl::OnMouseMove(UINT nFlags, CPoint point) {CStatic::OnMouseMove(nFlags, point);// 绘制辅助线DrawCrossHair(point); }void CPictureControl::DrawCrossHair(CPoint point) {CDC* pDC GetDC();CRect rect;GetClientRect(rect);// 保存当前DC状态int nSavedDC pDC-SaveDC();// 设置ROP模式为R2_NOT这样可以用相同的操作来清除线条pDC-SetROP2(R2_NOT);// 绘制水平线pDC-MoveTo(0, point.y);pDC-LineTo(rect.right, point.y);// 绘制垂直线pDC-MoveTo(point.x, 0);pDC-LineTo(point.x, rect.bottom);// 恢复DC状态pDC-RestoreDC(nSavedDC);ReleaseDC(pDC); }最后确保你的对话框或窗口中的图片控件使用了这个CPictureControl类。如果你是在对话框中使用你可能需要在对话框的头文件中声明一个CPictureControl成员变量并在对话框的OnInitDialog方法中将这个控件与实际的控件ID关联起来。 // 在对话框头文件中 CPictureControl m_picControl;// 在对话框的OnInitDialog方法中 m_picControl.SubclassDlgItem(IDC_PICTURE_CONTROL, this);请注意这个示例仅提供了基本的实现框架。根据你的具体需求你可能需要对代码进行调整比如在绘制辅助线之前清除之前的线条或者处理图片的缩放等问题。 最后绑定ID m_picControl.SubclassDlgItem(IDC_PICTURE_CONTROL, this);也可以这样 MFC调用自定义控件类OnMouseMove不响应 必须要将Notify设为True才行。 画出来了但是没有清除鼠标移动前的所有辅助线痕迹 改成点击 必须要将Notify设为True才行。 // CDlgLableDesign.cpp: 实现文件 //#include pch.h #include afxdialogex.h #include CDlgLableDesign.h #include Resource.h#define MAX_SCROLL_POS 2000typedef struct Para {char templateName[200];LONG fontHeight82;CPoint point; }Para; static Para para {0};// CDlgLableDesign 对话框IMPLEMENT_DYNAMIC(CDlgLableDesign, CDialogEx)CDlgLableDesign::CDlgLableDesign(CWnd* pParent /*nullptr*/): CDialogEx(IDD_DIALOG_LabelDesign, pParent) {}CDlgLableDesign::~CDlgLableDesign() { }void CDlgLableDesign::DoDataExchange(CDataExchange* pDX) {CDialogEx::DoDataExchange(pDX);DDX_Control(pDX, IDC_EDIT_LOG2, m_editDisplay);//DDX_Control(pDX, IDC_STATIC_IMAGE, m_pictureCtrl); }BEGIN_MESSAGE_MAP(CDlgLableDesign, CDialogEx)ON_BN_CLICKED(IDC_BUTTON_PRINT_OUTBOX, CDlgLableDesign::OnBnClickedButtonPrintOutbox)ON_WM_TIMER() // ON_WM_MOUSEMOVE() // ON_WM_PAINT() ON_STN_CLICKED(IDC_STATIC_IMAGE, CDlgLableDesign::OnClickedStaticImage) //ON_WM_VSCROLL() ON_WM_CLOSE() END_MESSAGE_MAP()void CDlgLableDesign::Log(CString szInfo) {logger.INFO_F(szInfo.GetBuffer(0));CString strInfo;m_editDisplay.GetWindowText(strInfo);int nLength strInfo.GetLength();m_editDisplay.SetSel(nLength, nLength, FALSE);m_editDisplay.SetFocus();m_editDisplay.SetSel(-1, -1);m_editDisplay.ReplaceSel(szInfo \r\n); }// CDlgLableDesign 消息处理程序 BOOL CDlgLableDesign::LoadImageToPictureControl(CString bmpPath) {CStatic* pPictureControl (CStatic*)GetDlgItem(IDC_STATIC_IMAGE);if (pPictureControl nullptr || bmpPath.IsEmpty())return FALSE;// 加载图片CImage image;HRESULT hr image.Load(bmpPath);if (FAILED(hr)){Log(加载图片失败 bmpPath);return FALSE;}// 获取图片大小int nWidth image.GetWidth();int nHeight image.GetHeight();//Log(宽高 CString(to_string(nWidth).c_str()) * CString(to_string(nHeight).c_str()) 转为mm CString(to_string(nWidth* PixToMm600).c_str()) * CString(to_string(nHeight * PixToMm600).c_str()));// 调整控件大小以适应图片//CRect rect;//pPictureControl-GetWindowRect(rect);pPictureControl-MoveWindow(208, 10, nWidth, nHeight);// 获取控件的DCCDC* pDC pPictureControl-GetDC();if (pDC nullptr)return FALSE;// 创建兼容DCCDC dcImage;if (!dcImage.CreateCompatibleDC(pDC))return FALSE;// 选择图片到DCCBitmap bmp;bmp.Attach(image.Detach());CBitmap* pOldBmp dcImage.SelectObject(bmp);// 将图片绘制到控件上pDC-BitBlt(0, 0, nWidth, nHeight, dcImage, 0, 0, SRCCOPY);// 清理dcImage.SelectObject(pOldBmp);pPictureControl-ReleaseDC(pDC);//CImage image;//HRESULT hResult image.Load(_T(bmpPath)); // 加载图片//if (SUCCEEDED(hResult))//{// // 获取Picture Control的句柄// CStatic* pPictureControl (CStatic*)GetDlgItem(IDC_STATIC_IMAGE);// // 获取控件大小// CRect rect;// pPictureControl-GetClientRect(rect);// int controlWidth rect.Width();// int controlHeight rect.Height();// // 获取图片原始尺寸// int imageWidth image.GetWidth();// int imageHeight image.GetHeight();// // 创建兼容的DC// CDC* pDC pPictureControl-GetDC();// CDC memDC;// memDC.CreateCompatibleDC(pDC);// // 创建兼容的位图并选入内存DC// CBitmap bmp;// bmp.CreateCompatibleBitmap(pDC, controlWidth, controlHeight);// CBitmap* pOldbmp memDC.SelectObject(bmp);// // 清空背景// memDC.FillSolidRect(rect, pDC-GetBkColor());// // 使用CImage绘制到内存DC这里使用缩放// image.Draw(memDC.m_hDC, 0, 0, controlWidth, controlHeight, 0, 0, imageWidth, imageHeight);// // 将内存DC绘制到控件上// pDC-BitBlt(0, 0, controlWidth, controlHeight, memDC, 0, 0, SRCCOPY);// // 清理// memDC.SelectObject(pOldbmp);// ReleaseDC(pDC);//}//else//{// Log(图片加载失败 bmpPath);//}return TRUE; } BOOL ReadPara() {CString DebugPara ;GetPrivateProfileString(DEBUG, DebugPara, , DebugPara.GetBuffer(2000), 2000, configFileName); DebugPara.ReleaseBuffer();if (DebugPara.GetLength() 0){utlStrToHex((BYTE*)para, DebugPara.GetBuffer(), DebugPara.GetLength() / 2);return TRUE;}return FALSE; } BOOL WritePara() {char DebugPara[4000] {0};utlHexToStr(DebugPara, (BYTE*)para, sizeof(para));if (WritePrivateProfileString(DEBUG, DebugPara, DebugPara, configFileName)){return TRUE;}return FALSE; } BOOL CDlgLableDesign::OnInitDialog() {CDialogEx::OnInitDialog();SetTimer(1, 100, NULL);ShowWindow(SW_MAXIMIZE);// 启用垂直滚动条SetScrollRange(SB_VERT, 0, MAX_SCROLL_POS); // 假设滚动范围是0到200//log位置自动长度CRect rect;GetDlgItem(IDC_EDIT_LOG2)-GetWindowRect(rect);GetClientRect(rect);rect.left 8;rect.top 70;rect.right 8195;rect.bottom rect.bottom -10;GetDlgItem(IDC_EDIT_LOG2)-MoveWindow(rect);return TRUE; // return TRUE unless you set the focus to a control// 异常: OCX 属性页应返回 FALSE }void CDlgLableDesign::OnBnClickedButtonPrintOutbox() {CFileDialog fileDlg(TRUE, _T(bmp), NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T(Bitmap Files (*.bmp)|*.bmp||));if (fileDlg.DoModal() IDOK){memset((char*) para, 0, sizeof(para));memcpy(para.templateName, fileDlg.GetPathName().GetBuffer(), fileDlg.GetPathName().GetLength());WritePara();Log(加载模板 CString(para.templateName));LoadImageToPictureControl(para.templateName); // 加载图片}}void CDlgLableDesign::OnTimer(UINT_PTR nIDEvent) {// TODO: 在此添加消息处理程序代码和/或调用默认值if (nIDEvent 1){if (ReadPara()){if (strlen(para.templateName) 0){Log(加载模板 CString(para.templateName));LoadImageToPictureControl(para.templateName); // 加载图片}}KillTimer(1); // 销毁定时器}CDialogEx::OnTimer(nIDEvent); }//void CDlgLableDesign::OnMouseMove(UINT nFlags, CPoint point) //{// TODO: 在此添加消息处理程序代码和/或调用默认值// 获取图片控件的位置和大小 // CRect rect; // CStatic* pPictureControl (CStatic*)GetDlgItem(IDC_STATIC_IMAGE); // pPictureControl-GetWindowRect(rect); // ScreenToClient(rect); //// 计算鼠标相对于图片控件的坐标 // int x point.x - rect.left; // int y point.y - rect.top; //// 在log中输出坐标 // CString str; // str.Format(_T(x: %d, y: %d), x, y); // // //// 判断点是否在矩形内 // if (rect.PtInRect(point)) { 获取鼠标的当前位置//CPoint mousePos point; 绘制水平和垂直辅助线//CClientDC dc(this);//CPen pen(PS_SOLID, 1, RGB(255, 0, 0)); // 红色辅助线//dc.SelectObject(pen);//dc.MoveTo(mousePos.x, 0);//dc.LineTo(mousePos.x, rect.Height());//dc.MoveTo(0, mousePos.y);//dc.LineTo(rect.Width(), mousePos.y); 重绘图片控件//Invalidate();//CClientDC dc(this); 设置字体//CFont font;//font.CreatePointFont(100, _T(Arial), dc);//CFont* pOldFont dc.SelectObject(font); 使用TextOut函数在鼠标位置下方绘制文本//dc.TextOut(point.x, point.y 20, str); 清除原来的文本CRect rect;GetClientRect(rect);InvalidateRect(rect); 恢复原始字体//dc.SelectObject(pOldFont);Invalidate(); // }//Log(str); // CDialogEx::OnMouseMove(nFlags, point); //}void CDlgLableDesign::OnClickedStaticImage() {::GetCursorPos(para.point); // 获取当前鼠标位置ScreenToClient(para.point); // 将屏幕坐标转换为窗口坐标ShowImage(); } void CDlgLableDesign::ShowImage() {LoadImageToPictureControl(para.templateName); // 加载图片// 获取图片控件的位置和大小CRect rect;CStatic* pPictureControl (CStatic*)GetDlgItem(IDC_STATIC_IMAGE);pPictureControl-GetWindowRect(rect);// 获取控件位置ScreenToClient(rect); // 将屏幕坐标转换为窗口坐标// 计算鼠标相对于图片控件的坐标int x para.point.x - rect.left;int y para.point.y - rect.top;// 在log中输出坐标CString str;str.Format(_T(%d, %d ), x, y);Log(str);SetClipboard(str);//画辅助线CDC* pDC GetDC();//CRect rect;//GetClientRect(rect);// 保存当前DC状态int nSavedDC pDC-SaveDC();DrawSomething(pDC, para.point.x, para.point.y); //画一些别的东西// 设置ROP模式为R2_NOT这样可以用相同的操作来清除线条//pDC-SetROP2(R2_NOT);CPen redPen;redPen.CreatePen(PS_SOLID, 1, RGB(255, 0, 0)); // 1像素宽的实线红色// 保存旧的画笔CPen* pOldPen pDC-SelectObject(redPen);// 绘制水平线pDC-MoveTo(rect.left, para.point.y);pDC-LineTo(rect.right, para.point.y);// 绘制垂直线pDC-MoveTo(para.point.x, rect.top);pDC-LineTo(para.point.x, rect.bottom);// 恢复旧的画笔pDC-SelectObject(pOldPen);// 恢复DC状态pDC-RestoreDC(nSavedDC);ReleaseDC(pDC); } BOOL CDlgLableDesign::DrawSomething(CDC* pDC,int x,int y) {// 设置字体CFont font;LOGFONT lf;memset(lf, 0, sizeof(LOGFONT));lf.lfHeight para.fontHeight; // 字体大小lf.lfWeight FW_HEAVY; // 加粗_tcscpy_s(lf.lfFaceName, (黑体)); // 字体名称font.CreateFontIndirect(lf);//font.CreatePointFont(240, Arial, NULL);CFont* pOldFont pDC-SelectObject(font);SetBkMode(pDC-m_hDC, TRANSPARENT);pDC-TextOut(x, y, _T(DEV1));pDC-SelectObject(pOldFont);return TRUE; }BOOL CDlgLableDesign::PreTranslateMessage(MSG* pMsg) {if (pMsg-message WM_KEYDOWN){switch (pMsg-wParam){case VK_LEFT:para.point.x--;ShowImage();break;case VK_RIGHT:para.point.x;ShowImage();break;case VK_UP:para.point.y--;ShowImage();break;case VK_DOWN:para.point.y;ShowImage();break;case VK_PRIOR:case VK_OEM_MINUS:case VK_SUBTRACT:para.fontHeight--;Log(字高: CString(to_string(para.fontHeight).c_str()));ShowImage();break;case VK_NEXT:case VK_OEM_PLUS:case VK_ADD:para.fontHeight;Log(字高: CString(to_string(para.fontHeight).c_str()));ShowImage();break;default:break;}return TRUE;}return CDialogEx::PreTranslateMessage(pMsg); }void CDlgLableDesign::OnClose() {WritePara();CDialogEx::OnClose(); } #pragma once #include afxdialogex.h// CDlgLableDesign 对话框class CDlgLableDesign : public CDialogEx {DECLARE_DYNAMIC(CDlgLableDesign)public:CDlgLableDesign(CWnd* pParent nullptr); // 标准构造函数virtual ~CDlgLableDesign();// 对话框数据 #ifdef AFX_DESIGN_TIMEenum { IDD IDD_DIALOG_LabelDesign }; #endifprotected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持DECLARE_MESSAGE_MAP() public:virtual BOOL OnInitDialog();afx_msg void OnBnClickedButtonPrintOutbox();afx_msg void OnTimer(UINT_PTR nIDEvent);// afx_msg void OnMouseMove(UINT nFlags, CPoint point); // afx_msg void OnPaint(); public:CEdit m_editDisplay;void Log(CString szInfo);BOOL CDlgLableDesign::DrawSomething(CDC* pDC, int x, int y);void CDlgLableDesign::ShowImage();BOOL LoadImageToPictureControl(CString pic);// 在对话框头文件中afx_msg void OnClickedStaticImage(); // afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);virtual BOOL PreTranslateMessage(MSG* pMsg);afx_msg void OnClose(); };
http://www.zqtcl.cn/news/339010/

相关文章:

  • 潮州哪里做网站html in wordpress
  • 在浏览器上建设网站平面作品集展示图片
  • 建设网站的技术手段天津泰达建设集团网站
  • 怎样做读书会网站广州公司注册在线
  • 多个网站做计划响水哪家专业做网站
  • 中国建设基础设施总公司 网站怒江网站建设
  • 做电脑网站手机能显示不出来怎么办有友情链接的网站
  • 潘家园做网站的公司网络营销管理系统
  • 如何在各大平台推广博客网站seo
  • 网站地图那么建设国内哪个网站做水产比较大
  • 可以做图片视频的网站网站策划网
  • 在阿里云做的网站怎么移动南宁seo咨询
  • 电子商务网站开发课程设计论文温州市微网站制作电话
  • 常州住房和城乡建设部网站网站开发哪家公司口碑好
  • 网站备案 登录名巴中交通建设有限公司网站
  • 门户资源分享网站模板软件网站开发市场前景
  • 海南省住房和城乡建设厅官方网站列举五种常用的网站推广方法
  • aso优化服务平台东莞优化seo
  • 高唐做创建网站的公司网站开发费怎么做账
  • 域名有没有被注册哪个网站最好中企动力网站建设方案
  • 无锡网站制作计划我的世界寻找建筑网站
  • 烟台建设集团招聘信息网站青岛百度公司总部
  • php网站模板怎么用怎么做链接网站
  • 完整网站开发视频教程安丘营销型网站建设
  • 女与男爱做电影网站免费网站外包公司
  • 传统文化传播公司网站建设wordpress 插件开启
  • 哪些网站是做外贸生意的网站建设所需美工
  • 网站建设哪个公司比较好惠州网络问政平台
  • 河南网站备案系统短信广州注册公司程序
  • 苏晋建设集团网站跨专业的简历怎么制作