16 个解决方案
#1
帮顶 顺便提示
HWND hwnd;
hwnd=GetDesktopWindow();
HWND hwnd;
hwnd=GetDesktopWindow();
#2
TextOut(x,y,...)
#3
void CMainFrame::OnScreenfont()
{
// TODO: Add your command handler code here
// CDC * pDC = CWnd::GetDesktopWindow()->GetDC();
// pDC ->TextOut(0 ,0, "font");
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont (
120, // nHeight 字体高度
40, // nWidth 字体宽度
0, // nEscapement 显示角度
0, // nOrientation 字体角度
FW_NORMAL, // nWeight 字体磅值
FALSE, // bItalic 是否倾斜
FALSE, // bUnderline 是否斜体
0, // cStrikeOut 是否加删除线
ANSI_CHARSET, // nCharSet 指定字符集
OUT_DEFAULT_PRECIS, // nOutPrecision 指定输出精度
CLIP_DEFAULT_PRECIS, // nClipPrecision 指定剪切精度
DEFAULT_QUALITY, // nQuality 指定输出质量
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 字符族
"Arial"); // 指定字体的字样名
CFont* oldFont = dc.SelectObject ( &myFont);
dc.SetTextColor (RGB (255,0,0));
dc.SetBkMode ( TRANSPARENT); //背景模式为透明
dc.TextOut(200,200,"屏幕上显示文字");
dc.SelectObject ( oldFont);
}
{
// TODO: Add your command handler code here
// CDC * pDC = CWnd::GetDesktopWindow()->GetDC();
// pDC ->TextOut(0 ,0, "font");
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont (
120, // nHeight 字体高度
40, // nWidth 字体宽度
0, // nEscapement 显示角度
0, // nOrientation 字体角度
FW_NORMAL, // nWeight 字体磅值
FALSE, // bItalic 是否倾斜
FALSE, // bUnderline 是否斜体
0, // cStrikeOut 是否加删除线
ANSI_CHARSET, // nCharSet 指定字符集
OUT_DEFAULT_PRECIS, // nOutPrecision 指定输出精度
CLIP_DEFAULT_PRECIS, // nClipPrecision 指定剪切精度
DEFAULT_QUALITY, // nQuality 指定输出质量
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 字符族
"Arial"); // 指定字体的字样名
CFont* oldFont = dc.SelectObject ( &myFont);
dc.SetTextColor (RGB (255,0,0));
dc.SetBkMode ( TRANSPARENT); //背景模式为透明
dc.TextOut(200,200,"屏幕上显示文字");
dc.SelectObject ( oldFont);
}
#4
这是我前不久看到的,不知道是不是你要的.
#5
需要不少内容 你不会
#6
其实做一个背景透明的窗口比较简单
#7
你所谓的显示文字,也是要有载体的,WINDOWS上你最好依靠WINDOW去显示,窗体透明而已,除非你直接读写显存,有些游戏有这种情况。
#8
顶!
#9
这个也顶哈
#10
其实CWindowDC,可以获取窗口设备环境,然后调用函数就可以输出了!不知道是不是你要的!
#11
这个好像不是吧!楼主
msdn结束The GetDesktopWindow function returns a handle to the desktop window. The desktop window covers the entire screen. The desktop window is the area on top of which other windows are painted.
#12
不知道OnScreenfont()是什么函数?是自定义的函数?还是通过添加消息自动生成的啊?
学习下
#13
才认真看,楼主想写音乐播放器软件呀,用透明窗口实现更好
#14
3楼这种答案太聪明了,复制下来就直接用了
#15
void CScreenFontView::OnScreenfont()
{
CDlg dlg;
dlg.DoModal();
CString str;
int x,y;
UpdateData();
str=dlg.m_edit;
x=dlg.m_x;
y=dlg.m_y;
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont(
160,
40,
0,
0,
FW_NORMAL,
true,
false,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
"Arial");
CFont *oldFont=dc.SelectObject(&myFont);
dc.SetTextColor(RGB(255,0,0));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(x,y,str);
dc.SelectObject(oldFont);
UpdateData(FALSE);
}
CDlg 是与新建的一个对话框相关联的类,里面m_edit,m_x,m_y,是与对话框内三个编辑框控件相关联的变量,onscreenfont 是一个菜单的映射函数。这个可以实现点击菜单,弹出对话框,输入要显示的文字和位置,不过屏幕刷新一下文字就会消失
{
CDlg dlg;
dlg.DoModal();
CString str;
int x,y;
UpdateData();
str=dlg.m_edit;
x=dlg.m_x;
y=dlg.m_y;
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont(
160,
40,
0,
0,
FW_NORMAL,
true,
false,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
"Arial");
CFont *oldFont=dc.SelectObject(&myFont);
dc.SetTextColor(RGB(255,0,0));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(x,y,str);
dc.SelectObject(oldFont);
UpdateData(FALSE);
}
CDlg 是与新建的一个对话框相关联的类,里面m_edit,m_x,m_y,是与对话框内三个编辑框控件相关联的变量,onscreenfont 是一个菜单的映射函数。这个可以实现点击菜单,弹出对话框,输入要显示的文字和位置,不过屏幕刷新一下文字就会消失
#16
#1
帮顶 顺便提示
HWND hwnd;
hwnd=GetDesktopWindow();
HWND hwnd;
hwnd=GetDesktopWindow();
#2
TextOut(x,y,...)
#3
void CMainFrame::OnScreenfont()
{
// TODO: Add your command handler code here
// CDC * pDC = CWnd::GetDesktopWindow()->GetDC();
// pDC ->TextOut(0 ,0, "font");
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont (
120, // nHeight 字体高度
40, // nWidth 字体宽度
0, // nEscapement 显示角度
0, // nOrientation 字体角度
FW_NORMAL, // nWeight 字体磅值
FALSE, // bItalic 是否倾斜
FALSE, // bUnderline 是否斜体
0, // cStrikeOut 是否加删除线
ANSI_CHARSET, // nCharSet 指定字符集
OUT_DEFAULT_PRECIS, // nOutPrecision 指定输出精度
CLIP_DEFAULT_PRECIS, // nClipPrecision 指定剪切精度
DEFAULT_QUALITY, // nQuality 指定输出质量
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 字符族
"Arial"); // 指定字体的字样名
CFont* oldFont = dc.SelectObject ( &myFont);
dc.SetTextColor (RGB (255,0,0));
dc.SetBkMode ( TRANSPARENT); //背景模式为透明
dc.TextOut(200,200,"屏幕上显示文字");
dc.SelectObject ( oldFont);
}
{
// TODO: Add your command handler code here
// CDC * pDC = CWnd::GetDesktopWindow()->GetDC();
// pDC ->TextOut(0 ,0, "font");
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont (
120, // nHeight 字体高度
40, // nWidth 字体宽度
0, // nEscapement 显示角度
0, // nOrientation 字体角度
FW_NORMAL, // nWeight 字体磅值
FALSE, // bItalic 是否倾斜
FALSE, // bUnderline 是否斜体
0, // cStrikeOut 是否加删除线
ANSI_CHARSET, // nCharSet 指定字符集
OUT_DEFAULT_PRECIS, // nOutPrecision 指定输出精度
CLIP_DEFAULT_PRECIS, // nClipPrecision 指定剪切精度
DEFAULT_QUALITY, // nQuality 指定输出质量
DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 字符族
"Arial"); // 指定字体的字样名
CFont* oldFont = dc.SelectObject ( &myFont);
dc.SetTextColor (RGB (255,0,0));
dc.SetBkMode ( TRANSPARENT); //背景模式为透明
dc.TextOut(200,200,"屏幕上显示文字");
dc.SelectObject ( oldFont);
}
#4
这是我前不久看到的,不知道是不是你要的.
#5
需要不少内容 你不会
#6
其实做一个背景透明的窗口比较简单
#7
你所谓的显示文字,也是要有载体的,WINDOWS上你最好依靠WINDOW去显示,窗体透明而已,除非你直接读写显存,有些游戏有这种情况。
#8
顶!
#9
这个也顶哈
#10
其实CWindowDC,可以获取窗口设备环境,然后调用函数就可以输出了!不知道是不是你要的!
#11
这个好像不是吧!楼主
msdn结束The GetDesktopWindow function returns a handle to the desktop window. The desktop window covers the entire screen. The desktop window is the area on top of which other windows are painted.
#12
不知道OnScreenfont()是什么函数?是自定义的函数?还是通过添加消息自动生成的啊?
学习下
#13
才认真看,楼主想写音乐播放器软件呀,用透明窗口实现更好
#14
3楼这种答案太聪明了,复制下来就直接用了
#15
void CScreenFontView::OnScreenfont()
{
CDlg dlg;
dlg.DoModal();
CString str;
int x,y;
UpdateData();
str=dlg.m_edit;
x=dlg.m_x;
y=dlg.m_y;
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont(
160,
40,
0,
0,
FW_NORMAL,
true,
false,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
"Arial");
CFont *oldFont=dc.SelectObject(&myFont);
dc.SetTextColor(RGB(255,0,0));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(x,y,str);
dc.SelectObject(oldFont);
UpdateData(FALSE);
}
CDlg 是与新建的一个对话框相关联的类,里面m_edit,m_x,m_y,是与对话框内三个编辑框控件相关联的变量,onscreenfont 是一个菜单的映射函数。这个可以实现点击菜单,弹出对话框,输入要显示的文字和位置,不过屏幕刷新一下文字就会消失
{
CDlg dlg;
dlg.DoModal();
CString str;
int x,y;
UpdateData();
str=dlg.m_edit;
x=dlg.m_x;
y=dlg.m_y;
CWindowDC dc(NULL);
CFont myFont;
myFont.CreateFont(
160,
40,
0,
0,
FW_NORMAL,
true,
false,
0,
ANSI_CHARSET,
OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,
DEFAULT_QUALITY,
DEFAULT_PITCH|FF_SWISS,
"Arial");
CFont *oldFont=dc.SelectObject(&myFont);
dc.SetTextColor(RGB(255,0,0));
dc.SetBkMode(TRANSPARENT);
dc.TextOut(x,y,str);
dc.SelectObject(oldFont);
UpdateData(FALSE);
}
CDlg 是与新建的一个对话框相关联的类,里面m_edit,m_x,m_y,是与对话框内三个编辑框控件相关联的变量,onscreenfont 是一个菜单的映射函数。这个可以实现点击菜单,弹出对话框,输入要显示的文字和位置,不过屏幕刷新一下文字就会消失