Проблемы с ComboBox
Участников: 2
Страница 1 из 1
Проблемы с ComboBox
Помогите создать и привязать данные к ComboBox
(вообще и по некоторым другим элементам диалогового окна неплохо было бы тоже)
в частности как для разных элементов устанавливать свой шрифт или хотя бы размер шрифта
(вообще и по некоторым другим элементам диалогового окна неплохо было бы тоже)
в частности как для разных элементов устанавливать свой шрифт или хотя бы размер шрифта
Re: Проблемы с ComboBox
timurar пишет:Помогите создать и привязать данные к ComboBox
(вообще и по некоторым другим элементам диалогового окна неплохо было бы тоже)
в частности как для разных элементов устанавливать свой шрифт или хотя бы размер шрифта
- Код:
#Include "windows.bi"
Dim As MSG msg
Dim As HWND hWnd,hwnd1
Dim s As String
Function LoadFont(ByVal Name_ As String ,ByVal Size As Integer,ByVal corner As Integer=0,ByVal BOLD As Integer=0,ByVal Italic As Integer=0,ByVal Underline As Integer=0,ByVal StrikeOut As Integer=0) As HFONT Export
Dim As Integer size_
If BOLD=1 Then
BOLD=700
Else
BOLD=400
EndIf
size_ = -MulDiv(Size, GetDeviceCaps(CreateDC("DISPLAY",0,0,0), LOGPIXELSY), 72)
Return CreateFont(size_,0,corner*10,0,Bold,Italic,Underline,StrikeOut,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH Or FF_DONTCARE,Name_)
End Function
hWnd = CreateWindowEx( 0, "#32770", "Hello", WS_OVERLAPPEDWINDOW Or WS_VISIBLE Or CBS_AUTOHSCROLL, 100, 100, 200, 300, 0, 0, 0, 0 )
hwnd1 = CreateWindowEx( 0, "combobox", "", WS_CHILD Or WS_VISIBLE or CBS_DROPDOWNLIST Or WS_VSCROLL, 10, 10, 150, 100, hwnd, Cast(hmenu,1), 0, 0 )
For a As Integer=1 To 20
s="" & a
SendMessage(hwnd1,CB_ADDSTRING,0,Cast(lparam,StrPtr(s)))
Next
SendMessage(hwnd1,WM_SETFONT,LoadFont("Arial",22),0)
While GetMessage( @msg, 0, 0, 0 )
TranslateMessage( @msg )
DispatchMessage( @msg )
Select Case msg.hwnd
Case hWnd
Select Case msg.message
Case 273
End
End Select
End Select
Wend
В примере реализовано добавление строк и изменение шрифта. Если нужны другие методы (удаление, переименование и пр.) то на странице мелкософта: http://msdn.microsoft.com/en-us/library/bb775792(v=VS.85).aspx
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Re: Проблемы с ComboBox
большое спасибо за ответ
был бы признателен за помощь в следующем
я создал диалоговое окно на основе шаблона и в редакторе формы добавил combobox
cb.bas
был бы признателен за помощь в следующем
я создал диалоговое окно на основе шаблона и в редакторе формы добавил combobox
cb.bas
- Код:
/'
Dialog Example, by fsw
compile with: fbc -s gui dialog.rc dialog.bas
'/
#Include Once "windows.bi"
#Include "cb.bi"
Declare Function DlgProc(ByVal hWin As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As Integer
'''
''' Program start
'''
''
'' Create the Dialog
''
hInstance=GetModuleHandle(NULL)
DialogBoxParam(hInstance, Cast(ZString Ptr,IDD_DLG1), NULL, @DlgProc, NULL)
''
'' Program has ended
''
ExitProcess(0)
End
'''
''' Program end
'''
Function DlgProc(ByVal hWin As HWND,ByVal uMsg As UINT,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As Integer
Dim As Long id, Event, x, y
Dim hBtn As HWND
Dim rect As RECT
Select Case uMsg
Case WM_INITDIALOG
'
Case WM_CLOSE
EndDialog(hWin, 0)
'
Case WM_COMMAND
id=LoWord(wParam)
Event=HiWord(wParam)
Select Case id
Case IDC_BTN1
EndDialog(hWin, 0)
'
End Select
Case WM_SIZE
GetClientRect(hWin,@rect)
hBtn=GetDlgItem(hWin,IDC_BTN1)
x=rect.right-100
y=rect.bottom-35
MoveWindow(hBtn,x,y,97,31,TRUE)
'
Case Else
Return FALSE
'
End Select
Return TRUE
End Function
- Код:
#define IDD_DLG1 1000
#define IDC_BTN1 1001
Dim Shared hInstance As HMODULE
- Код:
#define IDD_DLG1 1000
#define IDC_BTN1 1001
#define IDC_CBO1 1002
IDD_DLG1 DIALOGEX 6,5,210,111
CAPTION "IDD_DLG"
FONT 8,"MS Sans Serif",400,0,0
STYLE 0x10CE0800
BEGIN
CONTROL "Click me",IDC_BTN1,"Button",0x50010000,126,15,64,19
CONTROL "",IDC_CBO1,"ComboBox",0x50010003,24,15,90,75
END
Re: Проблемы с ComboBox
timurar пишет:большое спасибо за ответ
был бы признателен за помощь в следующем
я создал диалоговое окно на основе шаблона и в редакторе формы добавил combobox
cb.bascb.bi
- Код:
/'
Dialog Example, by fsw
compile with: fbc -s gui dialog.rc dialog.bas
'/
#Include Once "windows.bi"
#Include "cb.bi"
Declare Function DlgProc(ByVal hWin As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As Integer
'''
''' Program start
'''
''
'' Create the Dialog
''
hInstance=GetModuleHandle(NULL)
DialogBoxParam(hInstance, Cast(ZString Ptr,IDD_DLG1), NULL, @DlgProc, NULL)
''
'' Program has ended
''
ExitProcess(0)
End
'''
''' Program end
'''
Function DlgProc(ByVal hWin As HWND,ByVal uMsg As UINT,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As Integer
Dim As Long id, Event, x, y
Dim hBtn As HWND
Dim rect As RECT
Select Case uMsg
Case WM_INITDIALOG
'
Case WM_CLOSE
EndDialog(hWin, 0)
'
Case WM_COMMAND
id=LoWord(wParam)
Event=HiWord(wParam)
Select Case id
Case IDC_BTN1
EndDialog(hWin, 0)
'
End Select
Case WM_SIZE
GetClientRect(hWin,@rect)
hBtn=GetDlgItem(hWin,IDC_BTN1)
x=rect.right-100
y=rect.bottom-35
MoveWindow(hBtn,x,y,97,31,TRUE)
'
Case Else
Return FALSE
'
End Select
Return TRUE
End Functioncb.rc
- Код:
#define IDD_DLG1 1000
#define IDC_BTN1 1001
Dim Shared hInstance As HMODULEиспользование "SendMessage(IDC_CBO1,CB_ADDSTRING,0,Cast(lparam,StrPtr("1")))" в разных местах и с разными параметрами неполучился или я что то не до понял
- Код:
#define IDD_DLG1 1000
#define IDC_BTN1 1001
#define IDC_CBO1 1002
IDD_DLG1 DIALOGEX 6,5,210,111
CAPTION "IDD_DLG"
FONT 8,"MS Sans Serif",400,0,0
STYLE 0x10CE0800
BEGIN
CONTROL "Click me",IDC_BTN1,"Button",0x50010000,126,15,64,19
CONTROL "",IDC_CBO1,"ComboBox",0x50010003,24,15,90,75
END
На самом деле подсказка у тебя лежит прямо под носом, только ты в упор не хочешь ее замечать
Всмотрись внимательно в справочник API по функции SendMessage ( что передается в первом параметре) ?
Что туда передаешь ты?
Если не получается понять, как вариант можешь попробовать специально разработанной для диалогов функцией
SendDlgItemMessage
trew- Сообщения : 331
Дата регистрации : 2010-10-14
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|