兄弟,我是个过路人,哎……,早知DELPHI高手少,你何不投入我们VC/C++门下,前途无量啊,不过现在也不晚,我们那儿可高手如云,快来吧!
解决方案 »
- Cxgrid显示问题
- 修改数据库记录出错,大侠救命!!!!!
- fastreport3.18对话框中的文本框不能录入中文
- 控件问题:类似于俄罗斯方块的掌机晶格游戏的显示控件用什么比较合适?
- 怎么重载一个函数最方便?怎么重写一个组件?
- 500分高分!关于xp客户端远程访问2000Server服务器的问题.
- “对象名XXX无效”的错误
- 请教如何实现单文件的分块多线程传输?(文件太大!)
- 请求急救!安装dephi出了问题!
- 如何獲取外部程序畫面上Label的Caption值
- 急急!急。高手请进。关于socket和消息处理的,谢绝灌水。
- DELPHI如何用WINDOWS的API,,??为什么我的不能用,SOCKET这个类型?
不回答就不是高手吗?
高手有回答简单问题的吗?
好好想想吧,别把高手们得罪了!
OleContainer1.DoVerb(ovShow);
别的阵营会吐血的!!!!
var
W, H: Integer;
S: TPoint;
R, CR: TRect;
Flags: Integer;
begin
if FDocObj and FUIActive then Exit;
CR := Rect(0,0,Width,Height);
if FBorderStyle = bsSingle then
begin
if NewStyleControls and Ctl3D then
Flags := BF_ADJUST or BF_RECT
else
Flags := BF_ADJUST or BF_RECT or BF_MONO;
end
else
Flags := BF_FLAT; Canvas.Brush.Style := bsSolid;
Canvas.Brush.Color := clWhite;
DrawEdge(Canvas.Handle, CR, EDGE_SUNKEN, Flags or BF_MIDDLE);
if FOleObject <> nil then
begin
W := CR.Right - CR.Left;
H := CR.Bottom - CR.Top;
S := HimetricToPixels(FViewSize);
if (FDrawAspect = DVASPECT_CONTENT) and (FSizeMode = smScale) then
if W * S.Y > H * S.X then
begin
S.X := S.X * H div S.Y;
S.Y := H;
end else
begin
S.Y := S.Y * W div S.X;
S.X := W;
end;
if (FDrawAspect = DVASPECT_ICON) or (FSizeMode = smCenter) or
(FSizeMode = smScale) then
begin
R.Left := (W - S.X) div 2;
R.Top := (H - S.Y) div 2;
R.Right := R.Left + S.X;
R.Bottom := R.Top + S.Y;
end
else if FSizeMode = smClip then
begin
SetRect(R, CR.Left, CR.Top, S.X, S.Y);
IntersectClipRect(Canvas.Handle, CR.Left, CR.Top, CR.Right, CR.Bottom);
end
else
SetRect(R, CR.Left, CR.Top, W, H);
OleDraw(FOleObject, FDrawAspect, Canvas.Handle, R);
if FObjectOpen then ShadeRect(Canvas.Handle, CR);
end
{ 注意一下部分 }
else begin //none object
Canvas.Brush.Color := clWhite ;
Canvas.Brush.Style := bsSolid ;
Canvas.FillRect(rect(0,0,Width,Height)) ;
end ;
if FFocused then Canvas.DrawFocusRect(CR);
end;
不过目前只是将Olecontainer的初始背景设为白色,添加完之后背景要显示白色我在试试。
其他兄弟有没有更好的办法?
我不是高手,这里比我高的手很多。
另外,以后可不要真么写了,有的高手最讨厌别人这么写,说不定最后适得其反,反而没人回答了。
上面几句,虽然是催分,因为是CSDn规定不许只写“关注”之类的,否则属于“灌水”,所以就多写几句了,^_^
其实在Form的OnCreate事件里(Onshow或其他的事件也行)
写上:stole.Ctl3d := False 就行了。