首页 文章
  • 0 votes
     answers
     views

    工作线程中的GDI打印机设备上下文随机失败

    我设法创建了一个基于GDI的位图文件打印机例程 . 它工作稳定,没有任何泄漏 . 唯一的缺点当然是它在假脱机程序tranfser期间冻结了UI . 解决方案是将打印例程移动到工作线程中 . 这是代码(错误检查已删除): void __fastcall PRINT_THREAD::Execute() { while(!Terminated) { Synchronize(&Tal...
  • 1 votes
     answers
     views

    在透明的Form C#上绘制不透明度

    我有一个透明的表格 . (只需匹配背景颜色和透明度键即可完成 . 当试图绘制透明的东西时,它根本不起作用 . 随着alpha变量越来越接近0,绘制的颜色越来越接近表单的原始背景颜色 . SolidBrush opaqueBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255)); SolidBrush semiTransBrush = new S...
  • 0 votes
     answers
     views

    调用ResetDC时崩溃,devmode从编组结构复制到字节数组

    通过我的Devmode时,我在调用ResetDC时收到System.AccessViolationException . 我正在做以下事情.. // create and marshall the devmode to a byte array. DEVMODE myDevmode = new DEVMODE {dmSize = (short) Marshal.SizeOf(typeof (DE...
  • 24 votes
     answers
     views

    在卷纸上打印

    我正在使用C#和Winforms . 我正试图在纸卷上打印钞票 . 纸张的宽度为3英寸,但纸张的长度是动态的(它是卷纸) . 长度取决于列表中有多少项 . 例如 . 在购买时,如果有100件商品售出,那么它将是相当长的卷,而对于购买的单件商品,它将是很小的长度 . 当我打印报告时,在结束作业之后,打印机会弹出最后一页而不是我需要的页面 . 只要A4尺寸就可以弹出纸张 . 我想打印所需的行,然后停止...
  • 0 votes
     answers
     views

    Windows GDI Context- LoadImage和GetLastError()

    在我的程序的第一步中调用 LoadImage() 返回NULL . 就在它之后, GetLastError() 被调用,它出乎意料地返回0.我想知道为什么 LoadImage() 失败了,因为 GetLastError() 清楚地表明在失败的函数之后没有设置错误代码 . 这是代码的片段: if ( (hbitmap = (HBITMAP) LoadImage(hThisInstance, MAKE...
  • 2 votes
     answers
     views

    visual studio c 2010 express使用gdi获取错误

    好吧,我只是升级到visual studio c 2010 express . 当我使用gdi时,我得到的错误不在我的文件中但在gdi头文件中,其中一个错误是这个c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ gdiplusimaging.h(74):错误C4430:缺少类型说明符 - 假定为int . 注意...
  • 4 votes
     answers
     views

    在按钮背景上拉伸/缩小时,位图会丢失质量

    简介及相关信息: 我有一个所有者绘制静态控件 . 它应该在渐变背景之上有位图 . 静态控件尺寸 are not fixed ,它们是在创建父窗口期间计算的 . 我从资源文件加载RGB背景颜色(255,163,94)的位图 . 使用 TransparentBlt( ... , RGB( 255, 163, 94 ) ) API我拉伸/缩小位图以适应静态控件客户区(位图是设备相关位图,而不是DIB,...
  • 1 votes
     answers
     views

    从缓冲区加载HICON(* .ico文件)

    我只是想知道,如果在Windows中有一个API用于从字节数组(缓冲区)加载 HICON ?假设我下载了一个 *.ico 文件,我将该文件的内容放在某个缓冲区中 . 我希望能够从该缓冲区创建 HICON . 可以从放置在硬盘驱动器上的 *.ico 加载 HICON ,所以我想从内存缓冲区应该有一个同样简单的方法吗? 到目前为止,我发现只有2种解决方案,但它们都不适合我 . 第一个involved...
  • 1 votes
     answers
     views

    为什么FONTSIGNATURE不反映lfCharSet?

    我正在枚举像这样的Windows字体: LOGFONTW lf = {0}; lf.lfCharSet = DEFAULT_CHARSET; lf.lfFaceName[0] = L'\0'; lf.lfPitchAndFamily = 0; ::EnumFontFamiliesEx(hdc, &lf, reinterpret_cast<FO...
  • 0 votes
     answers
     views

    Windows API选择粗体字体

    我正在尝试编写一些代码来选择粗体字体(我实际上想要将字体文件名发送到跨平台字体渲染器,但这不太相关) . 我使用CreateFont()将cWeight设置为FW_BOLD,将pszFaceName设置为“Arial” . 我将此字体选择为DC并使用GetTextFace()来检查实际选择的字体 . 结果是Arial . 我很惊讶,字体不是Arial Bold,这是一个单独的面,有不同的字体文件 ...
  • 9 votes
     answers
     views

    禁用特定GDI设备上下文的抗锯齿

    我正在使用第三方库将图像渲染到GDI DC,我需要确保在没有任何平滑/抗锯齿的情况下渲染任何文本,以便我可以将图像转换为具有索引颜色的预定义调色板 . 我用于渲染的第三方库不支持这个,只是根据字体渲染的当前窗口设置呈现文本 . 他们还表示他们不太可能在短时间内添加切换抗锯齿功能 . 到目前为止,我发现的最好的工作是以这种方式调用第三方库(为简洁起见,错误处理和先前的设置检查被省略): privat...
  • 3 votes
     answers
     views

    如何创建自定义GDI设备?

    是否可以在用户模式下创建自定义GDI设备?我们的想法是创建一个设备上下文(HDC),我们可以将其传递给不透明的组件,这样当组件调用像TextOut这样的GDI函数时,我们就可以得到实际的文本字符串 .
  • 12 votes
     answers
     views

    指定GDI设备上下文的DPI

    我有一个生成元文件(EMF)的应用程序 . 它使用参考设备(也就是屏幕)来渲染这些元文件,因此元文件的DPI会根据运行代码的机器而改变 . 假设我的代码打算创建一个8.5英寸x 11英寸的图元文件 . 使用我的开发工作站作为参考,我最终获得了一个EMF {0,0,21590,27940}的rclFrame(图元文件的尺寸,以千分之一毫米为单位) 一个{1440,900}的szlDevice...
  • 2 votes
     answers
     views

    在C#中读取打印机设备上下文

    我能够将屏幕设备显示并保存到DIB位图,我想对打印机设备上下文执行相同的操作 . 我可以得到一个非空位图,但它总是纯黑色 . 这是允许我处理屏幕设备上下文的代码 . //In size variable we shall keep the size of the window. SIZE size; //Win32 API functions are import...
  • 1 votes
     answers
     views

    Windows GDI上下文 - LoadImage

    使用 LoadImage() 会导致分段错误 . 回溯堆栈我发现以下函数最后调用: AlpcMaxAllowedMessageLength() 这是我打电话的功能: status = (HBITMAP) LoadImage(NULL, MAKEINTRESOURCE(STATUS_BMP), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSE...
  • 1 votes
     answers
     views

    Windows GDI上下文 - CreateDIBSection

    我正在使用 CreateDIBSection() 从缓冲区创建一个HBITMAP,但有时 - 没有经常发生 - 我从它得到一个NULL指针 . 我无法理解可能导致函数返回NULL指针的原因,因为 - 正如我之前所说 - 它不是常规的 . 有时它会在显示10帧后发生,有时在2帧后发生 . 有人可以解释一下意外失败的可能原因是什么?
  • 16 votes
     answers
     views

    GDI在第二个线程中使用TGIFImage处理泄漏

    我有一个后台线程加载图像(从磁盘或服务器),目标是最终将它们传递给主线程进行绘制 . 当第二个线程使用VCL的TGIFImage class加载GIF图像时,每次在线程中执行以下行时,该程序有时会泄漏几个句柄: m_poBitmap32->Assign(poGIFImage); 也就是说,刚刚打开的GIF图像被分配给线程拥有的位图 . 这些都不与任何其他线程共享,即完全本地化到线程 . 它...
  • 0 votes
     answers
     views

    虚拟打印机设备上下文

    我正在尝试捕获窗口屏幕的内容,但它不适用于在SSH会话中启动的窗口 . 反正有没有让远程应用程序打印内容到虚拟显示器/打印机,以便gui可以捕获?谢谢! 我正在使用PrintWindow来捕获图像 威廉
  • 1 votes
     answers
     views

    GDI - 在打印机设备上下文中使用时,剪辑不起作用

    我正在使用Embarcadero RAD Studio C构建器XE7编译器 . 在一个应用程序项目中,我使用Windows GDI和GDI来绘制几个设备上下文 . 我的绘图内容是这样的: 在上面的示例中,文本背景和用户图片是使用GDI绘制的 . 用户图片也被剪切为圆形路径 . 所有其他项目(文本和表情符号)都是使用GDI绘制的 . 当我画到屏幕DC时,一切正常 . 现在我想在打印机设备上下文中...
  • 0 votes
     answers
     views

    镜像驱动程序调用捕获GDI调用

    我正在研究捕获GDI调用并以某种格式保存的示例 . 保存后,我需要在其他应用程序中显示 . 为了捕获GDI调用,我迷上了GDI调用 . 此样本是DDK样本中的可用样本 . 我可以挂钩到GDI调用,我正在调用我的DrvTextOut,DrvBitBlt等调用 . 我的问题是如何保存调用以及如何在屏幕上重绘它 . 请让我知道如何解决这个问题 . 问候

热门问题