PDA

View Full Version : حذف borderstyle از TWebBrowser



حمید محمودی
چهارشنبه 18 فروردین 1389, 22:49 عصر
سلام.

میخاستم بدونم چطوری میشه borderStyle رو از webbrowser بردارم. یه مثالی توی torry.net دیدم که اومده بود بصورت رانتایم یه فریم از این کنترل در یه Panel میساخت و اونو پارنت میکرد توش و بعدش میگفت ie.BoundsRect:=Panel1.ClientRect

اما من منظورم اینکه وقتی این کنترل در روی فرم وجود داره باید چکار بکنیم.


با توابع api میشه؟

متشکرم

حمید محمودی
پنج شنبه 19 فروردین 1389, 14:50 عصر
دوستان کسی نمیدونه باید چکار بکنم. راستی من کد api دارم با زبون vb6 که میاد اینکارو انجام میده نمیشه تبدیلش کرد؟

Felony
پنج شنبه 19 فروردین 1389, 16:23 عصر
اگر تابع API هست میشه تبدیلش کرد ، قرارش بدید ببینیم ...

حمید محمودی
پنج شنبه 19 فروردین 1389, 17:06 عصر
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Public Const GWL_STYLE = (-16)
Public Const GWL_EXSTYLE = (-20)

' Public constants for window styles
Public Const WS_BORDER = &H800000
Public Const WS_CAPTION = &HC00000
Public Const WS_CHILD = &H40000000
Public Const WS_CLIPCHILDREN = &H2000000
Public Const WS_CLIPSIBLINGS = &H4000000
Public Const WS_DLGFRAME = &H400000
Public Const WS_GROUP = &H20000
Public Const WS_HSCROLL = &H100000
Public Const WS_MAXIMIZEBOX = &H10000
Public Const WS_MINIMIZEBOX = &H20000
Public Const WS_SYSMENU = &H80000
Public Const WS_POPUP = &H80000000
Public Const WS_POPUPWINDOW = (WS_POPUP Or WS_BORDER Or WS_SYSMENU)
Public Const WS_TABSTOP = &H10000
Public Const WS_THICKFRAME = &H40000
Public Const WS_SIZEBOX = WS_THICKFRAME
Public Const WS_VISIBLE = &H10000000
Public Const WS_VSCROLL = &H200000
Public Const WM_CLOSE = &H10

' Public constants for extended window styles
Public Const WS_EX_CLIENTEDGE = &H200&
Public Const WS_EX_STATICEDGE = &H20000

' Public constants for SetWindowPos API declaration
Public Const SWP_FRAMECHANGED = &H20
Public Const SWP_NOACTIVATE = &H10
Public Const SWP_NOZORDER = &H4
Public Const SWP_NOSIZE = &H1
Public Const SWP_NOMOVE = &H2

Public Sub MakeFlat(lhWnd As Long)
Dim lStyle As Long

' Get window style
lStyle = GetWindowLong(lhWnd, GWL_EXSTYLE)
' Setup window styles
lStyle = lStyle And Not WS_EX_CLIENTEDGE Or WS_EX_STATICEDGE
' Set window style
SetWindowLong lhWnd, GWL_EXSTYLE, lStyle
RemoveBorder lhWnd
End Sub
Public Sub RemoveBorder(lhWnd As Long)
Dim lStyle As Long

' Get window style
lStyle = GetWindowLong(lhWnd, GWL_STYLE)
' Setup window styles
lStyle = lStyle And Not (WS_BORDER Or WS_DLGFRAME Or WS_CAPTION Or WS_BORDER Or WS_SIZEBOX Or WS_THICKFRAME)
' Set window style
SetWindowLong lhWnd, GWL_STYLE, lStyle
' Update window
SetWindowPos lhWnd, 0, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOZORDER Or SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE
End Sub

Felony
جمعه 20 فروردین 1389, 06:50 صبح
Procedure RemoveBorder(lhWnd: THandle);
var
lStyle: THandle;
begin
// Get window style
lStyle:= GetWindowLong(lhWnd, GWL_STYLE);
// Setup window styles
lStyle:= lStyle And Not (WS_BORDER Or WS_DLGFRAME Or WS_CAPTION Or WS_BORDER Or WS_SIZEBOX Or WS_THICKFRAME);
// Set window style
SetWindowLong(lhWnd, GWL_STYLE, lStyle);
// Update window
SetWindowPos(lhWnd, 0, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_NOZORDER Or SWP_FRAMECHANGED Or SWP_NOSIZE Or SWP_NOMOVE);
end;

Procedure MakeFlat(lhWnd: THandle);
var
lStyle: THandle;
begin
// Get window style
lStyle:= GetWindowLong(lhWnd, GWL_EXSTYLE);
// Setup window styles
lStyle:= lStyle And Not WS_EX_CLIENTEDGE Or WS_EX_STATICEDGE;
// Set window style
SetWindowLong(lhWnd, GWL_EXSTYLE, lStyle);
RemoveBorder(lhWnd);
end;

نحوه استفاده :

MakeFlat(WebBrowser1.Handle);

حمید محمودی
جمعه 20 فروردین 1389, 12:48 عصر
سلام. یه مشکلی هست. وقتی که بگیم WebBrowser1.navigate('www.google.com');

بازم دورش یه border میسازه.حالا چکار کنیم؟