directx-新手求助关于direct9窗口输出文字

问题描述

新手求助关于direct9窗口输出文字

具体代码如下:void RenderScene()
{
g_D3DDevice->Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255,0,0), 1.0f, 0);

g_D3DDevice->BeginScene();
ShowTips();
g_D3DDevice->EndScene();
g_D3DDevice->Present(NULL, NULL, NULL, NULL);

}

void ShowTips()
{
D3DXFONT_DESC d3dFont;
memset(&d3dFont,0,sizeof(d3dFont));
d3dFont.Height = 37;
d3dFont.Width = 15;

d3dFont.Weight = 1000;
d3dFont.Italic = FALSE;
d3dFont.CharSet = DEFAULT_CHARSET;
d3dFont.OutputPrecision = 0;

d3dFont.MipLevels = D3DX_DEFAULT;

d3dFont.Quality = 0;

d3dFont.PitchAndFamily = 0;
wcscpy_s(d3dFont.FaceName, L"Times New Roman");
ID3DXFont* font=0;
if(FAILED(D3DXCreateFontIndirect(g_D3DDevice, &d3dFont, &font)))
return ;
TCHAR tip[] = TEXT ("试验");
RECT rect = {::GetSystemMetrics(SM_CXSCREEN)/2-250 + 10,10,::GetSystemMetrics(SM_CXSCREEN)/2+240,50};
// HDC hdc = font->GetDC();
// SetTextColor(hdc, RGB(255,255,255)) ;
// DrawText(hdc,tip,sizeof(tip),&rect,DT_CENTER);
font->DrawText(
NULL,
tip,
-1,
&rect,
DT_CENTER,
D3DCOLOR_ARGB(0,255,0,100)
);
font->Release();
} 响应的是WM_PAINT消息 渲染有效果 但是文字未显示出来 调试 font->DrawText 返回值为36 说明执行成功了 为什么不显示呢

void CreatTipsWnd(HINSTANCE hInstance)
{
static TCHAR szAppName[] = TEXT ("tips");

wndclasstips.style        = CS_HREDRAW | CS_VREDRAW ;
wndclasstips.lpfnWndProc  = WndProc;
wndclasstips.cbClsExtra   = 0 ;
wndclasstips.cbWndExtra   = 0 ;
wndclasstips.hInstance    = hInstance ;
wndclasstips.hIcon        = /*LoadIcon (NULL, NULL)*/ NULL;
wndclasstips.hCursor      = /*LoadCursor (NULL, IDC_ARROW)*/ NULL;
wndclasstips.hbrBackground= (HBRUSH) GetStockObject (BLACK_BRUSH);
wndclasstips.lpszMenuName  = NULL ;
wndclasstips.lpszClassName= szAppName ;

if (!RegisterClass (&wndclasstips))
    return ;
TipsWnd = CreateWindow( szAppName,
    szAppName,
    WS_EX_TOOLWINDOW|WS_POPUP,
    ::GetSystemMetrics(SM_CXSCREEN)/2-250,
    0,
    //::GetSystemMetrics(SM_CXSCREEN),
    //::GetSystemMetrics(SM_CYSCREEN),
    500,
    100,
    NULL,
    NULL,
    hInstance,
    NULL) ;
//dx写提示
if(InitializeD3D(TipsWnd,false))
{
    //show windows
    RenderScene();
    ShowWindow(TipsWnd,SW_SHOW);
    UpdateWindow(TipsWnd);
}
//gdi写提示

// ::TextOut(hdc,r.left - 10,r.top - 15,TipContent,sizeof(TipContent));
// SetWindowPos(TipsWnd,HWND_TOPMOST, ::GetSystemMetrics(SM_CXSCREEN)/2-250,

// 0,

// 500,
// 100,SWP_HIDEWINDOW);
// ShowWindow (TipsWnd, SW_HIDE);
// UpdateWindow (TipsWnd) ;
}

这个是窗口创建 注册函数

时间: 2024-11-03 03:53:48

directx-新手求助关于direct9窗口输出文字的相关文章

新手求助 为什么注册窗口类会失败

问题描述 新手求助 为什么注册窗口类会失败 #include #define WINDOW_WIDTH 800 #define WINDOW_HEIGHT 600 #define WINDOW_TITLE L"[致我们永不熄灭的游戏开发梦想]程序核心框架" LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam); int WINAPI WinMain(HINSTANCE hInsta

求助c++字符图形输出问题

问题描述 求助c++字符图形输出问题 编程实现把输入任意整数n后,可打印出n行三角字符阵列图形.例如,输入整数5时,程序运行结果如下: ENTER A NUMBER:5<回车> A C F J O B E I N D H M G L K 新手求助啊-怎么样才能输出字符? 跪求大神代码求助...如果能讲解下就更好啦-qwq 解决方案 #include <iostream> using namespace std; char a[100][100]; int main() { char

窗口-新手求助:C#中 如何将form1中picture box1的图片放大 透明 无边框的显示到form2中...

问题描述 新手求助:C#中 如何将form1中picture box1的图片放大 透明 无边框的显示到form2中... 如题,,新手,还请尽可能详细点,,用C#处理图形 和多窗口 还是第一次..

新手求助 定义一个name 如何输入图形类的名字输出相应的类的内容

问题描述 新手求助 定义一个name 如何输入图形类的名字输出相应的类的内容 设计三个图形类:Circle(圆).Rectangle(矩形).Triangle(三角形): 1.Cirlce类基本信息:圆心坐标.半径: Rectangle类基本信息:长.宽: Triangle类基本信息:三个顶点坐标: 其中:成员变量为private属性,成员函数为public属性: 2.每个图形类有计算图形的面积GetArea(),显示图形的基本信息函数Show(): 现在我的代码不能实现 输入名字circle

区域-新手求助MVC问题,在页面上筛选条件输出

问题描述 新手求助MVC问题,在页面上筛选条件输出 我建立了两张表,A表的主键是B表的外键,现在我需要在页面上先按照A表的主键依次输出,然后在A表主键对应的区域输出B表,应该怎么去写筛选条件呢? 解决方案 需要筛选条件么 不就两张表联查么 - - 不知道问的点什么东东啊 解决方案二: 比如SELECT a.name,a.id,b.content,b.sid FROM atable a,btable b WHERE a.id = b.sid 关联查询显示

输出-新手求助,一个MVC的问题。

问题描述 新手求助,一个MVC的问题. 我建立了两张表A,B,A的主键是B的外键,根据外键把表B依次在页面输出,怎么设计控制器实现呢? 解决方案 ActionResult Index(int bid) { return View(db.A.Where(y => y.id == db.B.First(x => x == bid))); }

新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神

问题描述 新手求助!!!vc6.0 MFC程序编译通过却运行不了,F5输出错误一大堆!!求大神 Loaded 'ntdll.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64kernel32.dll', no matching symbolic information found. Loaded 'C:WindowsSysWOW64KernelBase.dll', no matching symbolic

c++-新手求助,为什么第一个输出-1#IND000 第二个输出1.212798074

问题描述 新手求助,为什么第一个输出-1#IND000 第二个输出1.212798074 #include #include #include int main() { double x1,x2=3.14159/4; do { x1=x2; x2=x1-(cos(x1)-x1)/(sin(x1)-1); } while(fabs(x2-x1)>1e-6&&(sin(x1)-1)!=0); cout<<"f(x)=0的解为:"<<setios

新人求助-新手求助,关于switch-case的问题

问题描述 新手求助,关于switch-case的问题 题目要求如下:无线电台的RS制信号报告是由三两个部分组成的:R(Readability) 信号可辨度即清晰度.S(Strength) 信号强度即大小.其中R位于报告第一位,共分5级,用1-5数字表示.UnreadableBarely readable occasional words distinguishableReadable with considerable difficultyReadable with practically no