当前位置:首页 » 编程语言 » c语言窗口滑动代码是什么
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言窗口滑动代码是什么

发布时间: 2022-09-07 04:29:09

❶ 谁能帮我做个c++或c语言编写的实现滑动窗口协议的程序啊,要能运行的,给个cpp也行,很急。

请自己写....

#include<stdio.h>
intmain()
{
return0;
}
开头给你了,加油~

❷ 用C语言编写个带弹出窗口的程序

#include <windows.h>

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hello, bccn!"), TEXT ("HelloMsg"), 0) ;

return 0 ;
}

❸ C语言 如何实现窗口的上下移动 左右移动

这个很复杂的 你要重新写好多函数 包括像printf 什么的
因为有可能让他打印一个字符串,但是有很多字符是没在屏幕里面的
而系统是没有这些方便的函数的

工作量太大,你估计不会去写得

❹ C语言“窗口滑动”代码中的疑问

这个是在命令行中模拟图形界面的操作?
n表示你设定的窗口大小, 也就是每行的字符数.

r表示送入和删除字符后, 当前所在的窗口位置.

❺ C语言中怎么用键盘控制界面的物体移动

这里有个用C语言控制屏幕上小飞机运动的代码,供参考:
#include<stdio.h>
#include<Windows.h>
#include<time.h>
#include"stdio.h"
#include <conio.h>
#define N 35
int scr[22][N]={0},pl=9,width=24,speed=3,density=30;
int score=0,death=0;
void print(int a[][N])
{
system("cls");
int i,j;
for(i=0;i<22;i++)
{
a[i][width-1]=4;
for(j=0;j<width;j++)
{
if(a[i][j]==0) printf(" ");
if(a[i][j]==1) printf("\5");
if(a[i][j]==2) printf(".");
if(a[i][j]==3) printf("\3");
if(a[i][j]==4) printf("|");
if(i==0 && j==width-1) printf("score:%d",score);
if(i==1 && j==width-1) printf("death:%d",death);
if(i==2 && j==width-1) printf("setting:ESC");
}
printf("\n");
}
}
void movebul(int a[][N])
{
int i,j=0;
for(i=0;i<22;i++)
{
if(i==0 && a[i][j]==2)a[i][j]==0;
if(a[i][j]==2)
{
if(a[i-1][j]==3) score+=10,printf("\7");
a[i][j]=0,a[i-1][j]=2;
}
}
}
void movepla(int a[][N])
{
int i,j;
for(i=21;i>=0;i--)
for(j=0;j<width;j++)
{
if(i==21&&a[i][j]==3) a[i][j]=0;
if(a[i][j]==3)a[i][j]=0,a[i+1][j]=3;
}
if(a[20][pl]==3&&a[21][pl]==1)death++;
}
void setting(void)
{
int sw=0,i,j;

system("cls");
do
{
sw=0;
printf("\n游戏界面的大小:1.大2.小>>");
switch(getchar())
{
case'1':width=34;break;
case'2':width=24;;break;
default:printf("\n错误,请重新选择...\n");
sw=1;
}
}while(sw);
do
{
sw=0;
printf("\n请选择敌机密度:1.大2.中3.小>>");
switch(getchar())
{
case'0':density=10;break;
case'1':density=20;break;
case'2':density=30;break;
case'3':density=40;break;
default:printf("\n错误,请重新选择...\n");
sw=1;
}
}while(sw);
do
{
sw=0;
printf("\n敌机的飞行速度:1.快2.中3.慢>>");
switch(getchar())
{
case'1':speed=2;break;
case'2':speed=3;break;
case'3':speed=4;break;
default:printf("\n错误,请重新选择...\n");
sw=1;
}
}while(sw);
for(i=0;i<22;i++)
for(j=0;j<45;j++)
scr[i][j]=0;
scr[21][pl=9]=1;
printf("\n按任意键保存...");
getchar();
}
void menu(void)
{
printf("说明:按AD控制我机左右飞行,W发射子弹\n设置:请按Esc\n开始游戏:任意键");
if(getchar()==27) setting();
}
void main()
{
menu();
int i=0,j=0;
scr[21][pl]=1;
scr[0][5]=3;
while(1)
{
if(kbhit())
switch(getch())
{
case'a':
case'A':if(pl>0)
scr[21][pl]=0,scr[21][--pl]=1;break;
case'd':
case'D':if(pl<width-2)
scr[21][pl]=0,scr[21][++pl]=1;break;
case'w':
case'W':scr[20][pl]=2;break;
case 27:setting();break;
}
if(++j%density==0)
{
j=0;
srand(time(NULL));
scr[0][rand()%width]=3;
}
if(++i%speed==0) movepla(scr);
movebul(scr);
print(scr);
if(i==30000) i=0;
}
}

❻ C语言中用MoveWindow()能把一个窗口内的按钮移到这个窗口外面吗

按钮既然属于这个窗口,当按钮的位置不在窗口范围内时,就不会显示出来,

所以不能显示在窗口外.

❼ 怎么用C语言编写一个windows窗口

  1. 调用window库窗口函数即可创建windows窗口。

  2. 必须使用windows的编译器,如VC,MS等等。

    RegisterClassEx函数:
    该函数注册在随后调用CreateWindow函数和CreateWindowEx函数中使用的窗口类。 RegisterClass函数己经由函数RegisterClassEx函数来代替,但是,如果不需要设置类的小目标则仍然可以使用RegisterClass函数。
    CreateWindowEx函数:
    该函数创建一个具有扩展风格的层叠式窗口、弹出式窗口或子窗口,其他与CreateWindow函数相同。关于创建窗口和其他参数的内容,请参看CreateWindow。具体仍可见微软的msdn。
    消息处理函数WindowProc:
    该函数是一个应用程序定义的函数。它处理发送给窗口的消息。WINDPROC类型定义了一个指向该回调函数的指针。WindowProc是用于应用程序定义函数的占位符。
    函数原型:
    LRESULT CALLBACK WindowProc (HWND hwnd,
    UINT uMsg,
    WPARAM wParam,
    LPARAM lParam);
    参数:
    hwnd:指向窗口的句柄。
    uMsg:指定消息类型。
    wParam:指定其余的、消息特定的信息。该参数的内容与UMsg参数值有关。
    IParam:指定其余的、消息特定的信息。该参数的内容与uMsg参数值有关。
    返回值:返回值就是消息处理结果,它与发送的消息有关。

    一个简单的Window的代码如下:

    #include<Windows.h>
    #include<tchar.h>
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam);
    intWinMain(
    __inHINSTANCEhInstance,
    __in_optHINSTANCEhPrevInstance,
    __inLPSTRlpCmdLine,
    __inintnShowCmd
    )
    {
    TCHAR*szName=_T("myWindow");
    WNDCLASSEXwc={0};
    HWNDhWnd=NULL;
    MSGMsg={0};
    wc.cbClsExtra=0;
    wc.cbWndExtra=0;
    wc.cbSize=sizeof(WNDCLASSEX);
    wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//通过函数来设置一个白色的背景,这里大家设置为NULL看看,会很有趣的
    wc.hCursor=NULL;//不设置
    wc.hIcon=NULL;//不设置
    wc.hIconSm=NULL;//不设置
    wc.hInstance=hInstance;//当前程序的句柄,hInstance是有系统给传递的
    wc.lpfnWndProc=WinProc;//窗口处理过程的回调函数。
    wc.lpszClassName=szName;//窗口类的名字。
    wc.lpszMenuName=NULL;
    wc.style=CS_HREDRAW|CS_VREDRAW;
    RegisterClassEx(&wc);//在系统中注册
    hWnd=CreateWindowEx(WS_EX_CLIENTEDGE,szName,_T("我的窗口我喜欢"),WS_OVERLAPPEDWINDOW,
    200,100,600,400,NULL,NULL,hInstance,NULL);//创建窗口,窗口标题为"我的窗口我喜欢"
    if(hWnd==NULL)
    {
    MessageBox(NULL,_T("There'sanError"),_T("ErrorTitle"),MB_ICONEXCLAMATION|MB_OK);
    return0;
    }
    ShowWindow(hWnd,nShowCmd);//显示窗口
    UpdateWindow(hWnd);
    //下面是对消息的循环处理,大家先不必管这些,下节课我会细说的
    while(GetMessage(&Msg,NULL,0,0))
    {
    TranslateMessage(&Msg);//翻译消息
    DispatchMessage(&Msg);//分派消息
    }
    returnMsg.message;
    }
    //消息处理函数
    LRESULTWINAPIWinProc(HWNDhWnd,UINTMsg,WPARAMwParam,LPARAMlParam)
    {
    switch(Msg)//处理消息过程
    {
    caseWM_DESTROY://响应鼠标单击关闭按钮事件
    PostQuitMessage(0);//退出消息队列
    return0;//退出函数
    }
    returnDefWindowProc(hWnd,Msg,wParam,lParam);
    }

❽ 谁能给个嵌入式触屏的C语言代码

首先如果要在操作系统上实现,那么一定要有操作系统的源码(是linux系统吗),至少要有驱动的源码,在你这里至少需要触摸屏驱动的源码。不过对于目前你的要求似乎不需要在操作系统的级别上实现,在应用层就可以实现,只要应用层可以捕捉到触摸屏点击当前的坐标就可以执行你想要的操作,另外,你说的改变颜色深浅应该指的是显示屏的颜色吧,也就是说,如果你要修该得是显示屏的颜色深浅,这和触摸屏是不同的驱动,因此还是建议你考虑一下做到应用层

❾ C语言是针对图形界面程序的吗 如何用C编写一个最简单的窗口程序 代码是

C语方下可以在文本模式下作出,也可以在图形模式下画出,用的是一些扩展库,就是说不是C标准库,下面给一个框架,不知道建不建议学,感觉过时了,看你自已的兴趣了,感兴趣下了功夫肯定能学好,因为它根本就不难,只不过用了些非标准库的所谓高级函数而已

#include <process.h>
#include <dos.h>

#include <conio.h>
#define Key_DOWN 0x5100
#define Key_UP 0x4900
#define Key_ESC 0x011b
#define Key_ALT_F 0x2100
#define Key_ALT_X 0x2d00
#define Key_ENTER 0x1c0d

void box(int startx,int starty,int high,int width);

main()
{
int i,key,x,y,l;
char *menu[] = {"File","Edit","Run","Option","Help","Setup","Zoom","Menu"};
/* 主菜单各项 */
char *red[] = { "F","E","R","O","H","S","Z","M" }; /* 加上红色热键 */
char *f[] = {"Load file", "Save file", "Print", "Modify ", "Quit A1t_x"};
/* File 项的子菜单 */
char buf[16*10*2],buf1[16*2]; /* 定义保存文本的缓冲区 */

while(1)
{
textbackground(BLUE);
clrscr();
textmode(C80);
window(1,1,80,1);/* 定义显示主菜单的窗口 */
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
gotoxy(5,1);
for(i=0,l=0;i<8;i++)
{
x=wherex(); /* 得到当前光标的坐标 */
y=wherey();
cprintf("%s",menu[i]); /* 显示各菜单项 */
l=strlen(menu[i]); /* 得到菜单项的长度 */
gotoxy(x,y);
textcolor(RED);
cprintf("%s",red[i]); /* 在主菜单项各头字符写上红字符 */
x=x+l+5;
gotoxy(x,y);
textcolor(BLACK); /* 为显示下一个菜单项移动光标 */
}
gotoxy(5,1);

key=bioskey(0);
switch (key){
case Key_ALT_X:
exit(0); /* ALT_X 则退出 */
case Key_ALT_F:
{
textbackground(BLACK);
textcolor(WHITE);
gotoxy(5,1);
cprintf("%s",menu[0]); /* 加黑 File 项 */
gettext(5,2,20,12,buf); /* 保存窗口原来的文本 */
window(5,2,20,9);/* 设置作矩形框的窗口 */
textbackground(LIGHTGRAY);
textcolor(BLACK);
clrscr();
box(1,1,7,16); /* 调用作框函数 */
for(i=2;i<7;i++) /* 显示子菜单各项 */
{ gotoxy(2,i);
cprintf("%s",f[i-2]);
}
gettext(2,2,18,3,buf1); /*将下拉菜单的内容保存在 buf1*/
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,2);
cprintf("%s",f[0]);/*加黑下拉菜单的第一项 load file*/
gotoxy(2,2);
y=2;

while ((key=bioskey(0))!=Key_ALT_X) /* 等待选择下拉菜单项*/
{
if ((key==Key_UP)||(key==Key_DOWN))
{
puttext(2,y,18,y+1,buf1); /* 恢复原先的项 */
if (key==Key_UP)
y=y==2?6:y-1;
else
y=y==6?2:y+1;
gettext(2,y,18,y+1,buf1);/*保存要压上光条的子菜单项*/
textbackground(BLACK);
textcolor(WHITE);
gotoxy(2,y);
cprintf("%s",f[y-2]); /* 产生黑条压在所选项上 */
gotoxy(2,y);
}
else
if (key==Key_ENTER)/* 若是回车键,判断是哪一子菜单按的回
车,在此没有相应的特殊处理*/
{
switch ( y-1 ){
case 1: /* 是子菜单项第一项:Load file */
break;
case 2: /* Save file */
break;
case 3: /* print */
break;
case 4: /* modify */
break;
case 5:
exit(0);
default:
break;
}
break;
}
else
if (key==Key_ESC)
break; /* 是 Esc 键,返回主菜单 */
}
if (key==Key_ALT_X) exit(0);
break;
}
}
}
}

void box(int startx,int starty,int high,int width) /* 画矩形框函数 */
{ int i;
gotoxy(startx,starty);
putch(0xda); /* 画┌ */
for (i=startx+1;i<width;i++) putch(0xc4); /* 画— */
putch(0xbf); /* 画┐ */
for( i=starty+1;i<high;i++)
{
gotoxy(startx,i);putch(0xb3); /* 画│ */
gotoxy(width,i);putch(0xb3); /* 画│ */
}
gotoxy(startx,high);
putch(0xc0); /* 画└ */
for (i=startx+1;i<width;i++) putch(0xc4); /* 画— */
putch(0xd9); /* 画┘ */
return ;
}

❿ c语言滚动字幕代码

在软件启动时,为了加深软件在用户头脑中的印象,可以在软件封面上由下而上循环滚动显示一些包含软件名称、功能、版本、用户名、研制单位等文字信息,在用户按下任意键或点击鼠标键后,立即结束演示进入程序主界面。本文通过向工程中添加Splash screen组件,然后在CsplashWnd类中添加DrawText成员方便地实现了具有滚动文字效果的软件封面,其中文字的位置、对齐方式、字体、字号、颜色都由程序来控制。

---- 详细设计步骤如下:

---- 1.创建一个名为test的SDI或MDI工程;

---- 2.向工程中添加Splash screen组件,即添加一个CWnd类的派生类CsplashWnd;

---- 3.编辑或导入软件封面的位图资源,标识号为IDB_SPLASH;

---- 4.向CsplashWnd类中添加一个公有成员函数DrawText,此函数用来在软件封面中显示文字,的实现代码如下:(其中参数含义分别为:内存dc,文字位置,对齐方式,字体,字号,颜色,正文文字)

void CSplashWnd::DrawText(CDC *pDC,
int x, int y, int nAlign,
CString sFontName, int nFONTSIZE0,
COLORREF crTextColor, CString sText)
{
LOGFONT lf;//字体
lf.lfStrikeOut=0;//删除线
lf.lfCharSet = DEFAULT_CHARSET ;//字符集
lf.lfEscapement =0;//角度
lf.lfItalic = 0 ;//倾斜
lf.lfUnderline = 0 ;//下划线
lf.lfHeight = nFONTSIZE0 ;//字号

strcpy(lf.lfFaceName,sFaceName.
GetBuffer(sFontName.GetLength()));
CFont font ;
font.CreateFontIndirect(&lf);
CFont *pOldFont = (CFont *)
pDC->SelectObject(&font);
UINT oldAlign,uAlign ;
switch(nAlign)
{
case 0: uAlign = TA_LEFT | TA_TOP ; break;
case 1: uAlign = TA_CENTER | TA_TOP; break;
case 2: uAlign = TA_RIGHT | TA_TOP ; break;
default: uAlign = TA_LEFT | TA_TOP ; break;
}
oldAlign = pDC->SetTextAlign(uAlign);
int oldMode = pDC->SetBkMode(TRANSPARENT);
int oldColor = pDC->SetTextColor(crTextColor) ;
pDC->TextOut(x,y,sText);

pDC->SetTextColor(oldColor) ;
pDC->SetTextAlign(oldAlign);
pDC->SetBkMode(oldMode);
pDC->SelectObject(pOldFont);
font.DeleteObject();
}

---- 5. 给CsplashWnd类中添加如下公有成员变量,并初始化变量;

class CSplashWnd : public CWnd
{
......
public:
CDC m_dcText,m_dcImage;//显示dc的兼容内存dc
CBitmap* m_pBitmap;//位图对象
CBitmap* m_pOldBitmapText,
*m_pOldBitmap;//跟踪内存dc中的原位图
CRgn m_rgn;//用于生成矩形区域
CRect m_TextRect ;//显示文字的矩形区域
int m_nCurPos ;//文字当前位置
......
}

CSplashWnd::CSplashWnd()
{......
m_nCurPos = 50 ;
......
}
---- 6.在SPLASH.CPP中加入以下预定义命令:

#define TITLECOLOR RGB(0,0,255)//默认标题颜色
#define CONTENTCOLOR RGB(0,255,255)//默认说明文字颜色
#define FONTSIZE0 15 //默认字号

---- 7. 在CsplashWnd类Create中拷贝矩形区域到m_TextRect ;

BOOL CSplashWnd::Create
(CWnd* pParentWnd /*= NULL*/)
{......
m_TextRect.CopyRect
(&CRect(50,100,500,300));
......
}

---- 8. 在CsplashWnd类的成员OnPaint中添加代码,响应显示窗口时发送的WM_PAINT消息。

void CSplashWnd::OnPaint()
{
CPaintDC dc(this);
BITMAP bm;
m_bitmap.GetBitmap(&bm);
static BOOL bFirst = TRUE;//
指示是否第一次绘制窗口
if(bFirst)
{
if (!m_dcImage.CreateCompatibleDC(&dc)) return;
m_pOldBitmap = m_dcImage.SelectObject(&m_bitmap);
if (!m_dcText.CreateCompatibleDC(&dc)) return;
m_pBitmap = new CBitmap ;
int nBitCount = m_dcText.GetDeviceCaps(BITSPIXEL);
m_pBitmap->CreateBitmap
(bm.bmWidth,bm.bmHeight,1,nBitCount,NULL);
m_pOldBitmapText = m_dcText.SelectObject(m_pBitmap);
m_rgn.CreateRectRgn(m_TextRect.left,m_TextRect.top,
m_TextRect.right,m_TextRect.bottom);
bFirst = FALSE;
}
m_dcText.SelectClipRgn(NULL);
m_dcText.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcImage, 0, 0, SRCCOPY);
m_dcText.SelectClipRgn(&m_rgn);
int nBasex = m_TextRect.left ;
int nBasey = m_TextRect.bottom-m_nCurPos;
int nMidx = m_TextRect.left + m_TextRect.Width()/2 ;

DrawText(&m_dcText,nMidx,nBasey, 1,
"楷体_GB2312", FONTSIZE0+5,TITLECOLOR,"研制单位");
DrawText(&m_dcText,nMidx,nBasey+30, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,
"武警指挥学院模拟中心");
DrawText(&m_dcText,nMidx,nBasey+50, 1,
"楷体_GB2312", FONTSIZE0,TITLECOLOR,"邮政编码");
DrawText(&m_dcText,nMidx,nBasey+70, 1,
"楷体_GB2312", FONTSIZE0,CONTENTCOLOR,"300350");
dc.BitBlt(0, 0, bm.bmWidth,
bm.bmHeight,&m_dcText, 0,0, SRCCOPY);
}