华为系统(emui 5.1 adb4.13)分区只读,adb改回来提示mount: Permission denied已经root了

vc++如何给窗体添加背景图片
vc++如何给窗体添加背景图片
发布时间: 11:19:14
编辑:www.fx114.net
本篇文章主要介绍了"vc++如何给窗体添加背景图片",主要涉及到vc++如何给窗体添加背景图片方面的内容,对于vc++如何给窗体添加背景图片感兴趣的同学可以参考一下。
VC是一个功能强大的的,但是用VC做的标准界面与Windows一样色彩灰暗单调,例如多文档窗口应用程序中的主框架窗口的背景便是如此。那么能否给主框架窗口的背景改变一下色彩或是给主框架窗口加上一幅漂亮的图片做背景?其实也不难。但与单文档窗口应用程序中改变框架窗口的背景方法不同,对多文档窗口应用程序中的主框架窗口改变背景不能简单地用ClassWizard重载OnEraseBkgnd(CDC*
pDC)函数的方法实现。因为多文档窗口应用程序中的主框架窗口的背景区是一个MDIClient类的窗口,因此改变背景与这个MDIClient类的窗口有关。MDIClient类的窗口的是m_hWndMDIClient(在CMDIFrameWnd中)。以下是其实现的步骤:
一、使用MFC AppWizard向导创建一个多文档窗口应用程序
1、在VC的“File”菜单中单击[New],弹出一“New”对话框。在“Projects”页中选择“MFC
AppWizard[exe]”,在“Project name”编辑框中输入“DrawBackground”,按[OK]按钮,退出“New”对话框。
2、在“MFC AppWizard step 1”对话框到“MFC AppWizard step 6”对话框中选择默认选项,按[Finish]按钮即完成多文档窗口应用程序的定制。
注:MFC(Microsoft Foundation Class)是MS-Visual
二、向应用程序添加
在VC的“View”菜单中单击“Resource Includes...”,
在弹出对话框中选择“Bitmap”,按[Import]按钮从文件中加载,单击“Workspace”的“Resource”便可见到刚才加载的,默认的资源为IDB_BITMA。
三、用ClassWiard生成一个 CWnd
类的CclientWnd
在CclientWnd类中重载OnEraseBkgnd(CDC* pDC),OnSize(UINTnType,
int cx, int cy)函数,并用手工加入重载的WNDPROC*
CClientWnd::GetSuperWndProcAddr()用来返回。
类CclientWnd的代码如下:
class CClientWnd : public CWnd
// Construction
CClient();
// Attributes
// Operations
// Overrides
// ClassWizard generated virtual function overrides
file://{{AFX_VIRTUAL(CClientWnd)
virtual WNDPROC*GetSuperWndProcAddr();
file://}}AFX_VIRTUAL
// Implementation
virtual ~CClientWnd();
// Generated message map functions
protected:
file://{{AFX_MSG(CClientWnd)
BOOL OnEraseBkgnd(CDC* pDC);
void OnSize(UINT nType,int cx, int cy);
file://}}AFX_MSG
DECLARE_MESSAGE_MAP()
类CclientWnd的实现文件代码如下:
// CClientWnd message handlers
BOOL CClientWnd::OnEraseBkgnd(CDC* pDC)
// TODO: Add your message handler code here and/or call default
CR // 客户区的大小
CDC dcM // 内存
CB // 对象
bmbk.LoadBitmap(IDB_BITMAP1); // 从资源加载 bitmap
// 得到位图bitmap的大小
BITMAP stB
bmbk.GetObject(sizeof(BITMAP),&stBitmap);
CSize bmsize(stBitmap.bmWidth,stBitmap.bmHeight);
dcMen.CreateCompatibleDC(pDC); // 创建兼容的
// 选入新的位图对象并保存旧的位图对象
CBitmap *pold=dcMen.SelectObject(&bmbk);
GetClientRect(&rectbk);
// 取得客户区的大小
// 从内存向屏幕复制位图对象
pDC-&StretchBlt(rectbk.left,rectbk.top,rectbk.Width(),
rectbk.Height(),&dcMen,0,0,bmsize.cx,bmsize.cy,SRCCOPY);
dcMen.SelectObject(pold);
// 恢复旧的位图对象 dcMen.DeleteDC();//
释放内存 }
WNDPROC*CClientWnd::GetSuperWndProcAddr()
{static WNDPROC NEAR pfnSuper = NULL; return &pfnS //
void CClientWnd::OnSize(UINT nType, int cx, int cy)
{CWnd::OnSize(nType, cx, cy);// TODO: Add your message handler code herefile://重画窗口Invalidate();}
四、修改CMainFrame类
在CMainFrame类中定义一个CClientWnd
类的m_wndClient,并在CMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)函数中把m_wndClient为主框架窗口的客户窗口。代码如下:
在MainFrm.h
#include &ClientWnd1.h&
class CMainFrame : public CMDIFrameWnd
{private: CClientWnd m_wndC};
MainFrm.cpp 中加入代码如下:
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -<span style="color:#)
return -<span style="color:#;
file://把m_wndClient为主框架窗口的客户窗口
if(!m_wndClient.SubclassWindow(m_hWndMDIClient))
{TRACE(&Fail to subclass MDI client window\n&);
return -<span style="color:#;}}
五、关键技术
1、本程序并不复杂,关键是要知道多文档窗口应用程序中的主框架窗口的背景区是一个MDIClient类的窗口。
2、选用函数要正确,如CClientWnd::OnEraseBkgnd(CDC* pDC)函数中选用GetClientRect(&rectbk)
函数来取得客户区的大小要比选用GetClipBox(&rectbk)
函数来得好。
3、要在CclientWnd类中重载OnSize(UINT nType, int cx, int cy)
函数,并加入Invalidate()
函数重画窗口。
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:您现在的位置: &
Visual Basic开发技术大全:如何设置窗体的背景图片
  7.2.7& 如何设置窗体的背景图片
  要设置窗体显示的背景图片,可用到窗体对象的Picture属性来完成,该属性用于返回窗体在运行时所显示的背景图片。设置Picture属性时所加载的文件可以是任何格式的图片文件;如BMP、JPG等格式。设置窗体的背景图片可以在设计时或运行时设置。在设计状态下设置时,其语法格式如下:
  Object.Picture
  在运行时设置窗体的背景图片,其语法格式如下:
  Set Object.Picture=LoadPicture(PicturePath)
  PicturePath参数取值为一个字符串表达式,其值表示为图片的存储路径。下面代码将设置当前窗体对象的背景图片,其代码如下:
  Set& Me.Picture=LoadPicture("D:\test\test.jpg")
&&&&&& 返回目录:
&&&&&& 编辑推荐:求大神帮忙!!!!急急急!!!怎么给win32 窗口添加图片背景_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:285,778贴子:
求大神帮忙!!!!急急急!!!怎么给win32 窗口添加图片背景收藏
如题。 给窗口添加图片背景或改背景颜色!全部代码如下:#include &windows.h&#include&tchar.h&#include &time.h&#include &stdlib.h&//定义4个方向#define UP
//向上,蛇头y坐标不断减小#define DOWN 2
//向下,蛇头y坐标不断增大#define LEFT 3
//向左,蛇头x坐标不断减小#define RIGHT 4
//向右,蛇头x坐标不断增大#define SNAKEWIDTH 15
//单节蛇的大小#define XWIDTH
//游戏区的宽度#define YHEIGHT
//游戏区的高度#define GETSCORE 10
//吃一个食物的得分#define ID_TIMER 1
//定时器ID#define TIMERSET 600
//定时间隔static int direct = RIGHT;
//方向(注:方向由蛇头决定)static int S
//吃到的食物数量bool IsOver = false, bEat =struct Snake
Snake():next(NULL), before(NULL)
pt.x = 0; pt.y = 0;
//起始光标的位置
Snake(const POINT &npt, Snake *, Snake *);
Snake * next, *}//定义蛇头Snake::Snake(const POINT &npt, Snake * nnext, Snake * nbefore):pt(npt), next(nnext), before(nbefore){}Snake *psLast = NULL, *food = NULL;bool GameClient[XWIDTH][YHEIGHT];
//定义游戏区坐标布尔值,表示相应点的蛇身以及是否有食物BOOLEAN InitWindowClass(HINSTANCE hInstance,int nCmdShow);LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
//窗口函数说明int
WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
//入口函数{
if(!InitWindowClass(hInstance,nCmdShow))
//如果创建窗口失败
MessageBox(NULL,L&创建窗口失败!&,_T(&创建窗口&),NULL);
//如果窗口失败则发出警告
while(GetMessage(&msg, NULL, 0, 0))
//消息循环
TranslateMessage(&msg);
DispatchMessage(&msg);
return(int) msg.wP
//程序终止时将信息返回系统}BOOLEAN InitWindowClass(HINSTANCE hInstance,int nCmdShow){
WNDCLASSEX
szWindowClass[] = L&Snake&;
//窗口类名
szTitle[]= L& ^_^ So easy---贪吃蛇--- ^_^ WZ &;
//窗口实例的标题名
//--------------*初始化窗口类*---------------
wcex.cbSize
=sizeof(WNDCLASSEX);
//窗口类的大小
wcex.cbClsExtra
//窗口类无扩展
wcex.cbWndExtra
//窗口实例无扩展
wcex.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
//窗口背景为白色
wcex.hCursor
= LoadCursor(hInstance, IDC_ARROW);
//窗口采用箭头光标
wcex.hIcon
= LoadIcon(hInstance, IDI_APPLICATION);
//窗口的图标为默认图标
wcex.hInstance
//当前实例句柄
wcex.lpfnWndProc = WndP
//窗口处理函数为WndProc
wcex.lpszClassName = szWindowC
//窗口类名为“Snake”
wcex.lpszMenuName = NULL;
//窗口中无菜单
wcex.style
= CS_HREDRAW | CS_VREDRAW;
//当窗口水平方向或垂直方向的宽度变化时重绘整个窗口
wcex.hIconSm
= LoadIcon(hInstance, IDI_APPLICATION);
//窗口的小图标为默认图标
if(!RegisterClassEx(&wcex))
//---------------*创建窗口*---------------
hWnd = CreateWindow(
szWindowClass,
//窗口类名
//窗口实例的标题名
WS_OVERLAPPEDWINDOW,
//窗口的风格
CW_USEDEFAULT, CW_USEDEFAULT,
(XWIDTH + 10) * SNAKEWIDTH, (YHEIGHT + 5) * SNAKEWIDTH, //窗口大小
//此窗口无父窗口
//此窗口无主菜单
hInstance,
//创建此窗口应用程序的当前句柄
//不使用该值
ShowWindow(hWnd,nCmdShow);
//显示窗口
UpdateWindow(hWnd);
//绘制用户区}//新食物刷新void NewFood(HWND hWnd){
food = new Snake();
//吃了新的食物后变成新的蛇
SYSTEMTIME
//系统时间
GetLocalTime(&st);
//当前时间
srand(st.wMilliseconds);
//获取系统时间来初始化随机数
food-&pt.x = rand() % XWIDTH, food-&pt.y = rand() % YHEIGHT;
//新食物的位置是通过获取随机数(20以内)
while(GameClient[food-&pt.x][food-&pt.y])
//游戏玩家玩的时候食物的刷新
GetLocalTime(&st);
srand(st.wMilliseconds);
food-&pt.x = rand() % XWIDTH, food-&pt.y = rand() % YHEIGHT;
GameClient[food-&pt.x][food-&pt.y] =
InvalidateRect(hWnd, NULL, TRUE);
//刷新后,去掉之前的食物(小方块)}//判断前方是否是食物inline bool IsFood(){
if(snake.pt.x == food-&pt.x && snake.pt.y == food-&pt.y)
else}//判断是否撞墙或者撞到自己身体bool TouchWall(){
Snake *temp = psL
//临时位置
if(snake.pt.x &= XWIDTH ||
snake.pt.x & 0 ||
snake.pt.y & 0 ||
snake.pt.y &= YHEIGHT)
//超越边界判断
while(temp!=&snake)
//碰撞自身身体判断
if(snake.pt.x == temp-&pt.x &&
snake.pt.y == temp-&pt.y)
temp = temp-&
}}// 蛇移动时void Move(HWND hWnd){
//用于记录蛇头的当前位置(未前进时)
Snake * temp = psL
//标记前方是否为食物,默认为不是食物,表示为通常的前进
x = snake.pt.x;
y = snake.pt.y;
//记录蛇头当前坐标
switch(direct)
//测试前进的地方是否是食物,同时将蛇头前进
//向上走时
--snake.pt.y;
case DOWN:
//向下走时
++snake.pt.y;
case LEFT:
//向左走时
--snake.pt.x;
case RIGHT:
//向右走时
++snake.pt.x;
if(!IsFood())
//如果不是食物,作如下处理
if(temp != &snake)
//最后一节不是蛇头
GameClient[temp-&pt.x][temp-&pt.y] =
while(temp!=snake.next)
temp-&pt.x = temp-&before-&pt.x;
temp-&pt.y = temp-&before-&pt.y;
temp = temp-&
temp-&pt.x =
temp-&pt.y =
GameClient[temp-&pt.x][temp-&pt.y] =
//psLast == &snake,即蛇只有蛇头
GameClient[x][y] =
if(TouchWall())
//蛇撞到墙
//则标记游戏结束
GameClient[snake.pt.x][snake.pt.y] =
//不然移动后的蛇头位置标记为有方块了
InvalidateRect(hWnd, NULL, TRUE);
//刷新游戏区
//如果是食物,作如下处理
//增加分数
food-&before = psL
psLast-&next =
if(temp!=&snake)
//最后一节不是蛇头
food-&pt.x = psLast-&pt.x;
food-&pt.y = psLast-&pt.y;
while(temp != snake.next)
temp-&pt.x = temp-&before-&pt.x;
temp-&pt.y = temp-&before-&pt.y;
temp = temp-&
temp-&pt.x =
temp-&pt.y =
//psLast == &snake,即蛇只有蛇头
food-&pt.x = food-&pt.y =
NewFood(hWnd);
}}//---------------*窗口函数代码*----------------LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
PAINTSTRUCT
//绘制结构
TEXTMETRIC
//文本结构
static int
cxChar, cyC
您的得分:
szGameOver[] = TEXT(&
呵呵哒!游戏结束了! &),
游戏暂停! &),
szBuffer[20],
//存放路径
*szText = NULL;
static bool pause =
switch(message)
case WM_CREATE:
//窗口消息
//游戏开局,默认方向向右
snake.pt.x
= XWIDTH / 2;
//蛇头默认显示在游戏区中间位置
snake.pt.y
= YHEIGHT / 2;
GameClient[snake.pt.x][snake.pt.y] =
hdc = GetDC(hWnd);
GetTextMetrics(hdc, &tm);
cyChar = tm.tmExternalLeading + tm.tmH
ReleaseDC(hWnd, hdc);
NewFood(hWnd);
SetTimer(hWnd, ID_TIMER, TIMERSET, NULL);
case WM_TIMER:
//计时器消息
if(pause) return 0;
Move(hWnd);
if(IsOver)
KillTimer(hWnd, ID_TIMER);
InvalidateRect(hWnd, NULL, TRUE);
case WM_KEYDOWN:
//键盘消息
if(IsOver || pause) return 0;
switch(wParam)
case VK_UP:
//上箭头键
if(direct != DOWN)
direct = UP;
Move(hWnd);
case VK_DOWN:
//下箭头键
if(direct != UP)
direct = DOWN;
Move(hWnd);
case VK_LEFT:
//左箭头键
if(direct != RIGHT)
direct = LEFT;
Move(hWnd);
case VK_RIGHT:
//右箭头键
if(direct != LEFT)
direct = RIGHT;
Move(hWnd);
case WM_CHAR:
//字符消息
if(IsOver && wParam != &#39;r&#39;) return 0;
switch(wParam)
case &#39;p&#39;:
InvalidateRect(hWnd, NULL, TRUE);
case &#39;r&#39;:
for(int x = 0; x & XWIDTH; ++x)
for(int y = 0; y & YHEIGHT; ++y)
GameClient[x][y] =
SetTimer(hWnd, ID_TIMER, TIMERSET, NULL);
//游戏开局,默认方向向右
snake.pt.x
= XWIDTH / 2;
//默认显示在游戏区中间位置
snake.pt.y
= YHEIGHT / 2;
GameClient[snake.pt.x][snake.pt.y] =
NewFood(hWnd);
case WM_PAINT:
//绘制消息
hdc = BeginPaint(hWnd, &ps);
SetViewportOrgEx(hdc, SNAKEWIDTH, SNAKEWIDTH, NULL);
//画游戏区的边框
MoveToEx(hdc, -1, -1, NULL);
LineTo(hdc, XWIDTH * SNAKEWIDTH + 1, -1);
LineTo(hdc, XWIDTH * SNAKEWIDTH + 1, YHEIGHT * SNAKEWIDTH + 1);
LineTo(hdc, -1, YHEIGHT * SNAKEWIDTH + 1);
LineTo(hdc, -1, -1);
TextOut(hdc, (XWIDTH + 1) * SNAKEWIDTH, 0, szScore, lstrlen(szScore)); //文本输出
TextOut(hdc, (XWIDTH + 1) * SNAKEWIDTH, cyChar,
szBuffer, wsprintf(szBuffer, TEXT(&%4d&), Score));
//如果暂停
TextOut(hdc, (XWIDTH + 1) * SNAKEWIDTH, 3 * cyChar, szPause, lstrlen(szPause));
else if(IsOver)
//如果游戏结束
TextOut(hdc, (XWIDTH + 1) * SNAKEWIDTH, 3 * cyChar, szGameOver, lstrlen(szGameOver));
SelectObject(hdc, GetStockObject(BLACK_BRUSH));
for(x = 0; x & XWIDTH; ++x)
for(y = 0; y & YHEIGHT; ++y)
if(GameClient[x][y])
Rectangle(hdc, x * SNAKEWIDTH, y * SNAKEWIDTH,
(x + 1) * SNAKEWIDTH, (y + 1) * SNAKEWIDTH);
case WM_DESTROY:
//消除窗口
KillTimer(hWnd, ID_TIMER);
PostQuitMessage(0);
return DefWindowProc(hWnd, message, wParam, lParam);
return 0;}
c++O基础学习中心「需高中以上」c++,达内总监授课,免费试学!达内IT培训,专设c++学习课程,「入门+精通」,一步全搞定!学习+就业!
竟然是贪吃蛇~
system(“color 9A”);数字字母可以改放在mian()前面
传智c++,不断超越自己,打造更深更全面的课程,大牛带你赢高薪
加我企鹅 四零五六二四九六一
我记得有个函数。bk什么的。专门设置背景图片的。它的函数参数就是包含图片路径的
登录百度帐号推荐应用21:01 提问
Java怎么给窗口添加背景图片
import javax.swing.JB
import javax.swing.JF
import javax.swing.JL
import javax.swing.JPasswordF
import javax.swing.JTextF
public class CopyOfTest3
JFrame frame = new JFrame("小小熊^_^管理系统&");
JTextField userName = new JTextField();
JPasswordField password = new JPasswordField();
JButton ok = new JButton("确定");
JButton cancel = new JButton("取消");
JLabel l1 = new JLabel("用户名:");
JLabel l2 = new JLabel("密
JLabel l3 = new JLabel("小小熊^_^管理系统&
private void initFrame()
frame.setLayout(null);
frame.setBounds(400,150,600,400);
l1.setBounds(150, 105, 150, 40);
l2.setBounds(150, 165, 150, 40);
l3.setBounds(220, 10, 500, 40);
userName.setBounds(220,110,200,35);
password.setBounds(220,170,200,35);
ok.setBounds(220, 250, 80, 35);
cancel.setBounds(340, 250, 80, 35);
frame.add(l1);
frame.add(l2);
frame.add(l3);
frame.add(userName);
frame.add(password);
frame.add(ok);
frame.add(cancel);
frame.setResizable(false);
frame.setVisible(true);
public static void main(String[] args)
new CopyOfTest3().initFrame();;
//怎么把D盘根目录下的 123.jpg添加到这个登录界面的背景
按赞数排序
import java.awt.*;
import javax.swing.*;
public class TestBackgroundColor extends JFrame {
public static void main(String[] args) {
// TODO Auto-generated method stub
TestBackgroundColor tbc......答案就在这里:----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。
background = new ImageIcon("003.jpg");// 背景图片
JLabel label = new JLabel(background);// 把背景图片显示在一个标签里面
OK,找到一个简单实例以供参考。祝好!
可以使用Eclipse可视化编程,直接在属性里方便设计背景等
可以新建个面板,在面板里放入带图片的JLabel,填满面板即可。
JPanel jp = new JPanel(); //新建面板
jp.setLayout(new FlowLayout()); //设置面板布局
ImageIcon ii=new ImageIcon(getClass().getResource("/Picture/i.jpg"));
JLabel uppicture=new JLabel(ii); //往面板里加入JLabel
this.setVisible(true);
给你个文章看一下,有两种方式:
其他相似问题怎样为窗体添加背景图_Java_ThinkSAAS
怎样为窗体添加背景图
怎样为窗体添加背景图
内容来源: 网络
为窗体添加一个漂亮的背景,代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.C
public class GraExp {
public GraExp() {
public static void main(String[] args) {
JFrame frame = new JFrame("背景图设置");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 这是背景图片
ImageIcon img = new ImageIcon("image/ww.png");
// 将背景图放在标签里。
JLabel imgLabel = new JLabel(img);
// 注意这里是关键,将背景标签添加到jfram的LayeredPane面板里。
frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
// 设置背景标签的位置
imgLabel.setBounds(0, 0, img.getIconWidth(), img.getIconHeight());
Container cp = frame.getContentPane();
cp.setLayout(new BorderLayout());
JButton jb = new JButton("按钮");
// 将按钮添加入窗口的内容面板
cp.add(jb,"North");
// 注意这里,将内容面板设为透明。这样LayeredPane面板中的背景才能显示出来。
((JPanel) cp).setOpaque(false);
frame.setSize(500, 300);
frame.setVisible(true);
PHP开发框架
开发工具/编程工具
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
让ThinkSAAS更好,把建议拿来。
开发客服微信

我要回帖

更多关于 adb命令挂载分区 的文章

 

随机推荐