标签: hdc

在不同进程之间共享HDC

我正在编写某种IPC功能,需要将某些资源从一个进程传递到另一个进程.这适用于Pipe handle等,可以通过DuplicateHandle复制.现在我需要将HDC从一个进程传递到另一个进程.这甚至可能吗?如果是的话:怎么样?

子问题:我假设从一个进程到另一个进程的窗口句柄(HWND)是安全的.这个假设是否正确?

windows winapi ipc hdc

7
推荐指数
2
解决办法
3211
查看次数

DeviceContext(HDC)中的Alpha通道

请帮我HDC中的alpha通道.我让HDC dc抛出CreateCompatibleDC.比调用CreateDIBSection并可以在内存中找到图像的字节.比调用DrawFrameControl到这个dc.一切正常,但在内存中每个像素有4个字节,alpha通道填充00.即使之前有FF.但我需要alpha通道.如何让DrawFrameControl设置真正的alpha值或者不要触摸它们.谢谢.抱歉英语不好:(

c++ windows winapi hdc

6
推荐指数
1
解决办法
2027
查看次数

我可以从WPF窗口获取HDC,以便我可以使用Gdi + API绘制它吗?

我有一个库,可以使用GDI + apis利用给定的HDC.我想在WPF应用程序中使用它.我尝试从WindowInteropHelper类获取句柄并将其传递给执行绘图的库方法.然而,它失败只是因为它无法从该句柄创建Gdi + Graphics.

然后我尝试在WindowsFormsHost控件中使用WinForm元素并使用WinForm控件的paint事件中提供的HDC,它确实工作正常.我想知道的是,可以直接在WPF控件\窗口上工作吗?有没有其他方法可以从WPF元素中获取HDC,可以使用GDI绘制api?

wpf graphics gdi+ hdc

5
推荐指数
1
解决办法
3981
查看次数

使用C++绘制C#位图

我有一个第三方dll(普通的C++),它在HDC上使用了一些线条.我希望在C#位图或表单上有这些行.

我试图给C++一个HBITMAP或一个Graphics.FromImage(位图)的HDC,但上述方法都不适合我.

使用MFC TestApp,使用以下代码一切正常

HWND handle = pStatic->GetSafeHwnd();
CDC* dc = pStatic->GetDC();

Draw(dc);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我需要做什么/用于使用上面的Draw(HDC)方法在Bitmap或表单上绘制?

我希望你能帮助我.提前致谢,

帕特里克

c# c++ drawing bitmap hdc

5
推荐指数
1
解决办法
2405
查看次数

将hdc内容复制到位图

你怎么能将HDC的内容复制到位图?

c++ copy bitmap hdc

4
推荐指数
1
解决办法
9528
查看次数

在哪里定义PAINTSTRUCT以及为什么要定义HDC?

我的问题很简单,也不是很重要.

  1. 我开始学习编写Win32应用程序.当我从其他人那里读取代码时,我经常会看到他们PAINTSTRUCT ps;在switch语句之前放入WndProc.他们为什么不把这个问题放进去WM_PAINT?他们为内存分配ps,然后不使用它?

  2. 我总是看到PAINTSTRUCT ps; HDC hdc = BeginPaint(hWnd, &ps);.但我检查了ps.hdc多次的值,ps.hdc并且hdc每次的值都相等.还有其他原因可以定义hdc可读性或编写更少的代码吗?

(对不起,如果我的英语不好而问题不属于这个社区的水平)

c++ memory winapi hdc

2
推荐指数
1
解决办法
1980
查看次数

OpenGL闪烁?

我试图在OpenGL中绘制一些文本,同时程序绘制一个立方体或任何Opengl本机,所以,当我试图将文本放在屏幕上时,它闪烁得非常快,我不知道为什么,我试图改变睡眠没有价值......

代码如下; 这是一个显示问题的GIF.

绿色背景是立方体,相机非常接近背景,你可以随身携带NUM_2.

#include <windows.h>
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include "default.h"

using namespace std;

LRESULT CALLBACK WindowProc(HWND, UINT, WPARAM, LPARAM);
DWORD WINAPI WorkLoop(LPVOID PARAMS);
void keyScan (MSG msg, Camera cam);

HDC hDC;
HGLRC hRC;
HWND hwnd;

RECT WBounds;


int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    WNDCLASSEX wcex;
    MSG msg;
    BOOL bQuit = FALSE;

    wcex.cbSize = sizeof(WNDCLASSEX);
    wcex.style = CS_OWNDC;
    wcex.lpfnWndProc = WindowProc;
    wcex.cbClsExtra = 0;
    wcex.cbWndExtra …
Run Code Online (Sandbox Code Playgroud)

c++ opengl hdc

1
推荐指数
1
解决办法
178
查看次数

绘制代码在我的WM_COMMAND消息处理程序中无法正常工作

我有以下代码,应该picture2.bmp在用户调用项目后绘制ID_FILE_32771.

case WM_COMMAND:
    wmId    = LOWORD(wParam);
    wmEvent = HIWORD(wParam);
    // Parse the menu selections:
    switch (wmId)
    {
    case ID_FILE_32771:
        hdc = BeginPaint(hWnd, &ps);
        LoadAndBlitBitmap2(__T("D://picture2.bmp"), hdc);
        EndPaint(hWnd, &ps);
        break;
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    break;
case WM_PAINT:
    hdc = BeginPaint(hWnd, &ps);
    LoadAndBlitBitmap(__T("D://picture.bmp"), hdc);
    EndPaint(hWnd, &ps);
    break;
Run Code Online (Sandbox Code Playgroud)

问题是,什么都没画.hdc没有正确初始化.我做错了什么,我该如何解决?

c windows winapi hdc

0
推荐指数
1
解决办法
226
查看次数

标签 统计

hdc ×8

c++ ×5

winapi ×4

windows ×3

bitmap ×2

c ×1

c# ×1

copy ×1

drawing ×1

gdi+ ×1

graphics ×1

ipc ×1

memory ×1

opengl ×1

wpf ×1