急!!!VC++ 关于背景图
绿色是背景图片的一部分,显示的时间有一部分在背景图片上,之后我要改变显示的时间时,会重叠在上面,我该怎么解决,谢谢各位了,最好是告诉我怎么能把背景图片上的字去掉
绿色是背景图片的一部分,显示的时间有一部分在背景图片上,之后我要改变显示的时间时,会重叠在上面,我该怎么解决,谢谢各位了,最好是告诉我怎么能把背景图片上的字去掉
答案:背景图片用单独的一张图片来做,上面不保存数字信息
然后需要往上面写数字的时候,其实并不是写在背景图片上,而是写在背景图片所加载到的那个handle所对应的那个dc上,然后显示的是这个dc,dc改了,字有了,背景在上面,而最初始的那张背景图片却没有改
其他:你可以将背景图先用底色填充,再在上面输出数字,不就可以了。 把你显示时间的控件属性设为不透明的,把背景挡住,不就可以啦。 在onpaint画,ontimer提供计数功能,用全局变量保存变量, 将背景图先用底色填充 上面的程序只能实现新建Excel文件的功能,但大多数情况我们需要的是导入excel中的数据,即要打开现存的xls文件,那么可用如下代码:
_Application app; Workbooks books;
_Workbook book;
Worksheets sheets;
_Worksheet sheet;
LPDISPATCH lpDisp; //接口指针
COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);
if( !app.CreateDispatch("Excel.Application") ){
this->MessageBox("无法创建Excel应用!");
return;
}
books=app.GetWorkbooks();
lpDisp = books.Open("C:\\a.xls",covOptional,covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional,
covOptional, covOptional, covOptional, covOptional
);
book.AttachDispatch( lpDisp );
sheets=book.GetSheets();
sheet=sheets.GetItem(COleVariant((short)1));
range=sheet.GetRange(COleVariant("A1"),COleVariant("A1"));
COleVariant rValue;
rValue=COleVariant(range.GetValue());
rValue.ChangeType(VT_BSTR);
this->MessageBox(CString(rValue.bstrVal));
book.SetSaved(TRUE);
app.Quit();
运行上面程序,单击Button1按钮,会显示出C:\a.xls文件中A1单元格中的内容。注意看以下代码,实现了Variant数据类型转换为CString类,这个只是一个示例,转换较为简单。
上一个:破解vc++的程序
下一个:VC++新建工程为什么不能包含.c文件