如果需要对图片进行平移或缩放,就需要修改建立顶点缓冲区时的参数。比如将图片放大1.5倍。
// 创建用于贴图的顶点缓冲区
CreateScreenBitmapVB(dev, 10, 10, width * 1.5f, height * 1.5f, vbuf1);
运行效果:
虽然用了DirectX 9.0,但是DirectX的窗口模式下是可以放置传统Win32控件的,比如
LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
D3DPRESENT_PARAMETERS pp = {};
pp.Windowed = TRUE;
pp.SwapEffect = D3DSWAPEFFECT_DISCARD;
static HWND hedit;
if (msg == WM_CREATE)
{
hedit = CreateWindow(L"edit", L"文本框的内容", WS_CHILD|WS_VISIBLE|ES_MULTILINE|WS_VSCROLL,
400, 10, 200, 200, hWnd, (HMENU)1, hInst, NULL);
SendMessage(hedit, WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT), 0); // SimSun替换System
// ...
就可以放置一个多行文本框。