loading的代码

20090919
启动加载loading的代码片断
...
StartVideo();
...

方案1:(不弹出新窗口)
int StartVideo()
{
int count = 0;
//改变背景为灰暗
update_bg(...);
//阻塞点击按扭的事件
//g_signal_handler_block(GObject *object,gulong   handler_id);
//g_signal_handlers_block_by_func不行么?

//获取当前窗口数目
count = getWindowCount();//函数现写
g_timeout_add(500,watchCount,count);
launchApp("StartVideo.sh");
}

gboolean watchCount(gpointer data)
{
int watcher = (int)data;
int curCount = getWindowCount();
if(curCount != watcher)
{
//恢复背景颜色
update_bg(...);
//恢复信号阻塞
//g_signal_handler_unblock(GObject *object,gulong   handler_id);
//g_signal_handler_unblock_by_func不行么?
return FALSE;
}
//闪烁画出LOADING......
showLoading("LOADING......");
return TRUE;
}

void showLoading(const gchar *text)
{
cairo_t *cr; //声明一支画笔
cr=cairo_create();//创建画笔
//还是gdk_cairo_create(widget->window);?
//...这里用不用设置source...
cairo_set_rgb_color(cr,0,1,0);//设置画笔颜色,也就是红,绿,蓝,这里设置成绿色。
cairo_rectangle(cr,10,10,200,200);//画一个方块,位置从坐标(10,10)开始,宽200,高200
cairo_fill(cr);//填充,使用的颜色当然是上面设置的颜色。
cairo_move_to(cr,250,200);//将画笔移动到(250,200)
cairo_select_font (cr, "DongWen--Song",
CAIRO_FONT_SLANT_NORMAL,
CAIRO_FONT_WEIGHT_NORMAL);//为cairo设置一个字体,字体名DongWen--Song,非斜体,非粗体。
cairo_scale_font(cr,60);//缩放字体到60倍
cairo_show_text(cr,text);//画出一个串
cairo_destroy(cr);//销毁画笔

}

WinForm的Loading可以通过以下步骤实现: 1. 创建一个新的WinForm窗口,将其命名为LoadingForm; 2. 在LoadingForm中添加一个ProgressBar控件,用于显示进度条; 3. 在LoadingForm中添加一个Label控件,用于显示加载中的提示信息; 4. 在程序启动时,先显示LoadingForm窗口,并在后台加载需要加载的资源; 5. 加载完成后,关闭LoadingForm窗口,显示主窗口。 以下是一个简单的WinForm Loading代码示例: ```csharp public partial class LoadingForm : Form { public LoadingForm() { InitializeComponent(); } private void LoadingForm_Load(object sender, EventArgs e) { // 启动异步加载资源 backgroundWorker.RunWorkerAsync(); } private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e) { // 加载资源的代码 for (int i = 0; i <= 100; i++) { Thread.Sleep(50); // 模拟加载过程 backgroundWorker.ReportProgress(i); // 更新进度条 } } private void backgroundWorker_ProgressChanged(object sender, ProgressChangedEventArgs e) { // 更新进度条和提示信息 progressBar.Value = e.ProgressPercentage; label.Text = $"Loading... {e.ProgressPercentage}%"; } private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { // 加载完成后,关闭LoadingForm窗口 this.Close(); } } ``` 在主窗口中调用LoadingForm的代码: ```csharp private void MainForm_Load(object sender, EventArgs e) { var loadingForm = new LoadingForm(); loadingForm.ShowDialog(); // 加载完成后,显示主窗口 this.Show(); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值