|
|
|
| Люди хачу создать меню точнее создал такой вапрос как измить картинку на сваю и как при открытии по умалчанию поставить сваю UI и можно ли отключить кнопку меню офиса ? access 2007 | |
|
| |
|
|
|
| Как я понимаю никто не знает | |
|
| |
|
|
|
| загрузить совсем свою картинку довольно сложно
вот примеры
http://www.accessribbon.de/en/?Downloads | |
|
| |
|
|
|
| osmar спасибо я уже всё зделал книгу прочёл про риббонс ...
пс кто хочет магу помоч! | |
|
| |
|
|
|
| Если есть время и желание набросайте статейку, положим на сайте.
| |
|
| |
|
|
|
| Osmar толко про картинки ? | |
|
| |
|
|
|
| да про что захотите.
Можно целый цикл про ленты.
типа step-by-step | |
|
| |
|
|
9 Кб. |
|
| Интро: чтобы всё работало надо потклучить библиатеку Microsoft Office 12.0 Object Library
Сушестоет несколко методов созданиее ленты можно создать тоблицу какою хотите и програмно добовить его как ленту но это потом
1.1 создаём таблицу UsysRibbons в режиме конструктора (акссес програмно видит это таблицу )но слово Usys означает что ваша таблица системная после создание она исчеснит чтобы увидить его надо в навигацонном панеле в свойствах см картинка 1 добавит птички в "показать скритые обекты" и "показать системные обекты"
1.2 в свойствах UsysRibbons создаём три поля
имя поля тип поля тип даных
ID Шочик Long Integer
RibbonName Текст 255
RibbonXml Memo
Где ID это понятно
RibbonName имя рибона это тоже понятно
RibbonXml Xml код где всё непонатно | |
|
| |
|
41 Кб. |
|
| 1.3 После создание тоблицы UsysRibbons в поле RibbonName пишем имя например "UI" шфпуется как юзер итервес
потом в настройках аксеса надо вклучить (у меня в акссесе стоит англиский язык так что далше без перевода ) увидамление про ошибки интерфейса см рисунок 2 и собствено назначить сваю UI на старте см картинка 3 | |
|
| |
|
37 Кб. |
|
| картинка 3 | |
|
| |
|
|
|
| после назносения собтвенова UI на старте добавлаем код в поле RibbonXml
это мой код мне лен писать новый так что примером будит этот
ПС моя програма написона для комуналных платежей так что все имена кнопык будут про платежи
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load" loadImage="pic">
<ribbon startFromScratch="true">
<officeMenu>
<button idMso="FileCloseDatabase" visible="false"/>
<button idMso="FileDatabaseProperties" visible="false"/>
<button idMso="FileOpenDatabase" visible="false"/>
<button idMso="FileNewDatabase" visible="false"/>
<splitButton idMso="FileSaveAsMenuAccess" visible="false" />
</officeMenu>
<tabs>
<tab id="kom" label="комуналные платежи">
<group id="kom0" label="комуналные платежи">
<button id="en" label="Електроенергия" onAction="rib" size="large"
image="1.ico"/>
<button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="gh" label="Газ организация"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="j" label="вода"
imageMso="ViewsReportView" size="large" onAction="rib"/>
</group>
</tab>
</tabs> </ribbon>
</customUI> | |
|
| |
|
|
|
| <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" > это обизателное поле
<ribbon startFromScratch="true"> если вписат false то меню небудет работат вклучица стандартное меню
<officeMenu> манипулации с кнопкой офиса
<button idMso="FileCloseDatabase" visible="false"/>
<button idMso="FileDatabaseProperties" visible="false"/>
<button idMso="FileOpenDatabase" visible="false"/>
<button idMso="FileNewDatabase" visible="false"/>
<splitButton idMso="FileSaveAsMenuAccess" visible="false" />
</officeMenu>
где button кнопка id имя если idMso значет стандартная кнопка Mso переводица как микрасоф офис патом вылжу имена всех стандартных кнопык visible="false думаю это понятно
<tabs> вкладки
<tab id="kom" label="комуналные платежи"> новая вкладка где id это id вкладки label имя вкладкаи
<group id="kom0" label="комуналные платежи"> група в вкладке в групе находеца кнопки
<button id="en" label="Електроенергия" onAction="rib" size="large" button это и есть кнопка
image="1.ico"/>
<button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction="rib"/> imageMSo это изабоажение но стандартное вложоное в офисс
<button id="gh" label="Газ организация"
imageMso="ViewsReportView" size="large" onAction="rib"/>
<button id="j" label="вода"
imageMso="ViewsReportView" size="large" onAction="rib"/>
</group>
</tab> | |
|
| |
|
|
|
| чтобы кликноув в кнопку что-то было надо в <button id="gb" label="Газ"
imageMso="ViewsReportView" size="large" onAction=""/> приписать макрос!
так как макрос х***** надо зделать так чтобы там была працедура (функция) чтобы аксесс понял какая кнопка нажата и что после этого зделать (пс не путайте с простой кнопкой невазожно в писать працедуру при нажатии и т.д.) что бы всё работало надо при начале написать такой маинкий хмл код onLoad="Load" (функция называетца Load )
палучица так
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load"> | |
|
| |
|
|
|
| ой-ой-ой
А можно это все вместе и мне мылом? | |
|
| |
|
|
|
|
| создаём модуль в модуле
Option Compare Database
Option Explicit
Public gobjRibbon As IRibbonUI
Public lngDropDownValue As Long
Public Sub Load(ribbon As IRibbonUI) ' control callback
lngDropDownValue = 2
Set gobjRibbon = ribbon
End Sub
и
Public Sub rib(control As IRibbonControl) ' menu
On Error Resume Next
Select Case control.id
Case "en"
DoCmd.OpenForm "en"
********************************
End Select
End Sub
Функция rib оприделает что делать при нажатии на канкретную кнопку Case "здесь имя кнопки точнее ID"
а патом что надо делать | |
|
| |
|
|
|
| Палучитца так
customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load">
<ribbon startFromScratch="true">
************************
<button id="en" label="Електроенергия"
imageMso="ViewsReportView" size="large" onAction="rib"/>
************************ | |
|
| |
|
|
|
| 1.4 как добавить собствиную картинку дапустим (у меня так) картинка лежит в папке temp а эта папка рядом с програмой
саздаём Модуль в ней пишем
Public Function getAppPath() As String
getAppPath = Left(CurrentDb.name, Len(CurrentDb.name) _
- Len(dir(CurrentDb.name))) ' априделаем место нашей програмы
End Function
и
Sub pic(imageID As String, ByRef image) 'image callback
Set image = LoadPicture(getAppPath & "temp\" & imageID) ' и дабавлаем картинку
End Sub
но можно дабавть только .BMP .GIF .JPG но так не красиво и собствено отредактируем код
Sub pic(imageID As String, ByRef image) 'image callback
Set image = LoadPictureGDIP(getAppPath & "temp\" & imageID)
End Sub
и дабавлаем | |
|
| |
|
|
|
| вот такой мальенки код
Option Compare Database
Option Explicit
Public Const GUID_IPicture = "{7BF80980-BF32-101A-8BBB-00AA00300CAB}" 'IPicture
Public Enum PicFileType
pictypeBMP = 1
pictypeGIF = 2
pictypePNG = 3
pictypeJPG = 4
End Enum
Public Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(7) As Byte
End Type
Public Type TSize
x As Double
y As Double
End Type
Public Type RECT
Bottom As Long
Left As Long
Right As Long
Top As Long
End Type
Private Type PICTDESC
cbSizeOfStruct As Long
PicType As Long
hImage As Long
xExt As Long
yExt As Long
End Type
Private Type GDIPStartupInput
GdiplusVersion As Long
DebugEventCallback As Long
SuppressBackgroundThread As Long
SuppressExternalCodecs As Long
End Type
Private Type EncoderParameter
UUID As GUID
NumberOfValues As Long
type As Long
Value As Long
End Type
Private Type EncoderParameters
count As Long
Parameter As EncoderParameter
End Type
Private Declare Function OleCreatePictureIndirect Lib "olepro32.dll" (lpPictDesc As PICTDESC, riid As GUID, ByVal fPictureOwnsHandle As Long, IPic As Object) As Long
Private Declare Function CLSIDFromString Lib "ole32" (ByVal lpsz As Any, pCLSID As GUID) As Long
Private Declare Function GlobalAlloc Lib "kernel32" (ByVal uFlags As Long, ByVal dwBytes As Long) As Long
Private Declare Function GlobalSize Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalLock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalUnlock Lib "kernel32.dll" (ByVal hMem As Long) As Long
Private Declare Function GlobalFree Lib "kernel32" (ByVal hMem As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" (ByRef Destination As Any, ByRef Source As Any, ByVal Length As Long)
Private Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal Destination As Long, ByRef Source As Byte, ByVal Length As Long)
Private Declare Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetModuleHandle Lib "kernel32.dll" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As Long
Private Declare Function SetTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
Private Declare Function CreateStreamOnHGlobal Lib "ole32" (ByVal hGlobal As Long, ByVal fDeleteOnRelease As Long, ByRef ppstm As Any) As Long
Private Declare Function GetHGlobalFromStream Lib "ole32.dll" (ByVal pstm As Any, ByRef phglobal As Long) As Long
Private Declare Function GdiplusStartup Lib "ogl" (token As Long, inputbuf As GDIPStartupInput, Optional ByVal outputbuf As Long = 0) As Long
Private Declare Function GdiplusShutdown Lib "ogl" (ByVal token As Long) As Long
Private Declare Function GdipCreateBitmapFromFile Lib "ogl" (ByVal FileName As Long, bitmap As Long) As Long
Private Declare Function GdipCreateFromHDC Lib "ogl" (ByVal hdc As Long, GpGraphics As Long) As Long
Private Declare Function GdipDeleteGraphics Lib "ogl" (ByVal Graphics As Long) As Long
Private Declare Function GdipDrawImageRect Lib "ogl" (ByVal Graphics As Long, ByVal image As Long, ByVal x As Single, ByVal y As Single, ByVal Width As Single, ByVal Height As Single) As Long
Private Declare Function GdipDisposeImage Lib "ogl" (ByVal image As Long) As Long
Private Declare Function GdipCreateHBITMAPFromBitmap Lib "ogl" (ByVal bitmap As Long, hbmReturn As Long, ByVal background As Long) As Long
Public Declare Function GdipCreateHICONFromBitmap Lib "gdiplus" (ByVal bitmap As Long, hbmReturn As Long) As Long
Private Declare Function GdipGetImageThumbnail Lib "ogl" (ByVal image As Long, ByVal thumbWidth As Long, ByVal thumbHeight As Long, thumbImage As Long, Optional ByVal callback As Long = 0, Optional ByVal callbackData As Long = 0) As Long
Private Declare Function GdipCreateBitmapFromHBITMAP Lib "ogl" (ByVal hbm As Long, ByVal hpal As Long, bitmap As Long) As Long
Private Declare Function GdipCreateBitmapFromHICON Lib "gdiplus" (ByVal hicon As Long, bitmap As Long) As Long
Private Declare Function GdipGetImageWidth Lib "ogl" (ByVal image As Long, Width As Long) As Long
Private Declare Function GdipGetImageHeight Lib "ogl" (ByVal image As Long, Height As Long) As Long
Private Declare Function GdipSaveImageToFile Lib "ogl" (ByVal image As Long, ByVal FileName As Long, clsidEncoder As GUID, encoderParams As Any) As Long
Private Declare Function GdipSaveImageToStream Lib "ogl" (ByVal image As Long, ByVal stream As IUnknown, clsidEncoder As GUID, encoderParams As Any) As Long
Private Declare Function GdipLoadImageFromStream Lib "ogl" (ByVal stream As IUnknown, image As Long) As Long
Private lGDIP As Long
Function InitGDIP() As Boolean
Dim TGDP As GDIPStartupInput
Dim hMod As Long
If lGDIP = 0 Then
If IsNull(TempVars("GDIPlusHandle")) Then
TGDP.GdiplusVersion = 1
hMod = GetModuleHandle("ogl.dll")
If hMod = 0 Then
hMod = LoadLibrary(Environ$("CommonProgramFiles") & "\Microsoft Shared\Office12\ogl.dll")
End If
GdiplusStartup lGDIP, TGDP
TempVars("GDIPlusHandle") = lGDIP
Else
lGDIP = TempVars("GDIPlusHandle")
End If
End If
InitGDIP = (lGDIP > 0)
AutoShutDown
End Function
Sub ShutDownGDIP()
If lGDIP <> 0 Then
GdiplusShutdown lGDIP
lGDIP = 0
TempVars("GDIPlusHandle") = Null
End If
End Sub
Private Sub AutoShutDown()
If lGDIP <> 0 Then
SetTimer 0&, 0&, 5000, AddressOf TimerProc
End If
End Sub
Private Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal idEvent As Long, ByVal dwTime As Long)
Debug.Print "GDI+ AutoShutDown"
KillTimer 0&, idEvent
ShutDownGDIP
End Sub
Function LoadPictureGDIP(sFileName As String) As StdPicture
Dim hBmp As Long
Dim hPic As Long
If Not InitGDIP Then Exit Function
If GdipCreateBitmapFromFile(StrPtr(sFileName), hPic) = 0 Then
GdipCreateHBITMAPFromBitmap hPic, hBmp, 0&
If hBmp <> 0 Then
Set LoadPictureGDIP = BitmapToPicture(hBmp)
GdipDisposeImage hPic
End If
End If
End Function
Function ResampleGDIP(ByVal image As StdPicture, ByVal Width As Long, ByVal Height As Long, _
Optional bSharpen As Boolean = True) As StdPicture
Dim lRes As Long
Dim lBitmap As Long
If Not InitGDIP Then Exit Function
If image.type = 1 Then
lRes = GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap)
Else
lRes = GdipCreateBitmapFromHICON(image.Handle, lBitmap)
End If
If lRes = 0 Then
Dim lThumb As Long
Dim hBitmap As Long
lRes = GdipGetImageThumbnail(lBitmap, Width, Height, lThumb, 0, 0)
If lRes = 0 Then
If image.type = 3 Then
lRes = GdipCreateHICONFromBitmap(lThumb, hBitmap)
Set ResampleGDIP = BitmapToPicture(hBitmap, True)
Else
lRes = GdipCreateHBITMAPFromBitmap(lThumb, hBitmap, 0)
Set ResampleGDIP = BitmapToPicture(hBitmap)
End If
GdipDisposeImage lThumb
End If
GdipDisposeImage lBitmap
End If
End Function
Function GetDimensionsGDIP(ByVal image As StdPicture) As TSize
Dim lRes As Long
Dim lBitmap As Long
Dim x As Long, y As Long
If Not InitGDIP Then Exit Function
If image Is Nothing Then Exit Function
lRes = GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap)
If lRes = 0 Then
GdipGetImageHeight lBitmap, y
GdipGetImageWidth lBitmap, x
GetDimensionsGDIP.x = CDbl(x)
GetDimensionsGDIP.y = CDbl(y)
GdipDisposeImage lBitmap
End If
End Function
Function SavePicGDIPlus(ByVal image As StdPicture, sFile As String, _
PicType As PicFileType, Optional Quality As Long = 80) As Boolean
Dim lBitmap As Long
Dim TEncoder As GUID
Dim ret As Long
Dim TParams As EncoderParameters
Dim sType As String
If Not InitGDIP Then Exit Function
If GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap) = 0 Then
Select Case PicType
Case pictypeBMP: sType = "{557CF400-1A04-11D3-9A73-0000F81EF32E}"
Case pictypeGIF: sType = "{557CF402-1A04-11D3-9A73-0000F81EF32E}"
Case pictypePNG: sType = "{557CF406-1A04-11D3-9A73-0000F81EF32E}"
Case pictypeJPG: sType = "{557CF401-1A04-11D3-9A73-0000F81EF32E}"
End Select
CLSIDFromString StrPtr(sType), TEncoder
If PicType = pictypeJPG Then
TParams.count = 1
With TParams.Parameter
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .UUID
.NumberOfValues = 1
.type = 4
.Value = VarPtr(CLng(Quality))
End With
Else
If (PicType = pictypeGIF) Then TParams.count = 1 Else TParams.count = 0
End If
ret = GdipSaveImageToFile(lBitmap, StrPtr(sFile), TEncoder, TParams)
GdipDisposeImage lBitmap
DoEvents
SavePicGDIPlus = (dir(sFile) <> "")
End If
End Function
Function ArrayFromPicture(ByVal image As Object, PicType As PicFileType, Optional Quality As Long = 80) As Byte()
Dim lBitmap As Long
Dim TEncoder As GUID
Dim ret As Long
Dim TParams As EncoderParameters
Dim sType As String
Dim IStm As IUnknown
If Not InitGDIP Then Exit Function
If GdipCreateBitmapFromHBITMAP(image.Handle, 0, lBitmap) = 0 Then
Select Case PicType
Case pictypeBMP: sType = "{557CF400-1A04-11D3-9A73-0000F81EF32E}"
Case pictypeGIF: sType = "{557CF402-1A04-11D3-9A73-0000F81EF32E}"
Case pictypePNG: sType = "{557CF406-1A04-11D3-9A73-0000F81EF32E}"
Case pictypeJPG: sType = "{557CF401-1A04-11D3-9A73-0000F81EF32E}"
End Select
CLSIDFromString StrPtr(sType), TEncoder
If PicType = pictypeJPG Then
TParams.count = 1
With TParams.Parameter
CLSIDFromString StrPtr("{1D5BE4B5-FA4A-452D-9CDD-5DB35105E7EB}"), .UUID
.NumberOfValues = 1
.type = 4
.Value = VarPtr(CLng(Quality))
End With
Else
If (PicType = pictypeGIF) Then TParams.count = 1 Else TParams.count = 0
End If
ret = CreateStreamOnHGlobal(0&, 1, IStm)
ret = GdipSaveImageToStream(lBitmap, IStm, TEncoder, TParams)
If ret = 0 Then
Dim hMem As Long, LSize As Long, lpMem As Long
Dim abData() As Byte
ret = GetHGlobalFromStream(IStm, hMem)
If ret = 0 Then
LSize = GlobalSize(hMem)
lpMem = GlobalLock(hMem)
ReDim abData(LSize - 1)
CopyMemory abData(0), ByVal lpMem, LSize
GlobalUnlock hMem
ArrayFromPicture = abData
End If
Set IStm = Nothing
End If
GdipDisposeImage lBitmap
End If
End Function
Public Function AttachmentToPicture(strTable As String, strAttachmentField As String, strImage As String) As StdPicture
Dim strSQL As String
Dim bin() As Byte
Dim nOffset As Long
Dim nSize As Long
strSQL = "SELECT " & strTable & "." & strAttachmentField & ".FileData AS data " & _
"FROM " & strTable & _
" WHERE " & strTable & "." & strAttachmentField & ".FileName='" & strImage & "'"
On Error Resume Next
bin = DBEngine(0)(0).OpenRecordset(strSQL, dbOpenSnapshot)(0)
If Err.Number = 0 Then
Dim bin2() As Byte
nOffset = bin(0)
nSize = UBound(bin)
ReDim bin2(nSize - nOffset)
CopyMemory bin2(0), bin(nOffset), nSize - nOffset
Set AttachmentToPicture = ArrayToPicture(bin2)
Erase bin2
Erase bin
End If
End Function
Public Function ArrayToPicture(ByRef PicBin() As Byte) As StdPicture
Dim IStm As IUnknown
Dim lBitmap As Long
Dim hBmp As Long
Dim ret As Long
If Not InitGDIP Then Exit Function
ret = CreateStreamOnHGlobal(VarPtr(PicBin(0)), 0, IStm)
If ret = 0 Then
ret = GdipLoadImageFromStream(IStm, lBitmap)
If ret = 0 Then
GdipCreateHBITMAPFromBitmap lBitmap, hBmp, 0&
If hBmp <> 0 Then
Set ArrayToPicture = BitmapToPicture(hBmp)
End If
End If
GdipDisposeImage lBitmap
End If
End Function
Function BitmapToPicture(ByVal hBmp As Long, Optional bIsIcon As Boolean = False) As StdPicture
Dim TPicConv As PICTDESC, UID As GUID
With TPicConv
If bIsIcon Then
.cbSizeOfStruct = 16
.PicType = 3
Else
.cbSizeOfStruct = Len(TPicConv)
.PicType = 1
End If
.hImage = hBmp
End With
CLSIDFromString StrPtr(GUID_IPicture), UID
OleCreatePictureIndirect TPicConv, UID, True, BitmapToPicture
End Function
|
| |
|
| |
|
|
|
| и сотвествино в ХМЛ пишем такой код
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="Load" loadImage="pic">
******************************
<button id="en" label"Электроенергия" onAction="rib" size="large"
image="1.ico"/>
*****************************
image="1.ico" здес сотвествино имя икуонки
как в понели примушество этого кода в том что в можыте добавить иконку если кто-то незнает в разницу между иконкой и JPG то разница в нашум случии в том что не будет белый фон | |
|
| |
|
|
|
| Эсть ещё много способов работы с лентой
Прграмно добавить, удалить, работа с их видемостью, изменить имя, и т.д. при желании всё остальное напишу | |
|
| |
|
|
|
| Есть же хорошие книжки
Martin R., Puls K., Hennig T. RibbonX. Customizing the Office 2007 Ribbon (2008) | |
|
| |
|
|
|
| Как удобно - я офигиваю ваще.............
Чтобыкартинку поменять - надо прогу написать.
Неужели нет кнопочки обзор... для поиска нужной картинки, для задания нужной каутинки?
Слова нету только чувства | |
|
| |
|
|
|
|
ник: час
Как удобно - я офигиваю ваще.............
Чтобыкартинку поменять - надо прогу написать.
Неужели нет кнопочки обзор... для поиска нужной картинки, для задания нужной каутинки?
Слова нету только чувства
|
нету только этот способ | |
|
| |
|
|
|
|
ник: AlexSyr
Есть же хорошие книжки
Martin R., Puls K., Hennig T. RibbonX. Customizing the Office 2007 Ribbon (2008)
|
а ты прочти эту книгу и скажи где там написано как изминит картинку кнопки на иконку ок?
Или скрыт меню офиса | |
|
| |
|
|
|
| Оглавление:
Chapter 8 Custom Pictures and Galleries .............. 263
...
Adding Custom Pictures to Access Projects ...... 270
|
Кусок текста:
1. Add a new table and name it USysRibbonImages. (You may use a different name, but this name is used in the following code and examples).
2. Add the following fields to the new table:
- ID (an auto numbering field)
- ImageName (a text field)
- ImageFile (an attachment field)
3. Save and close the table.
4. With the table selected (but still closed), go to Create => Forms => Form and create a new form based on the USysRibbonImages table.
|
и т.д.
Конечно слишком подробно я данную книжку не читал - так и жизни не хватит, чтобы все книжки читать, но отправная точка для изучения - есть. | |
|
| |
|
|
|
| А ты папробуй этим методом иконку ставить сможеш? | |
|
| |
|
|
|
|
| AlexSyr Я эту книгу прочитал.... а твой пример про BMP я говарю про ICO | |
|
| |
|
|
|
| Там же описан способ с использованием GDI+
К сожалению у меня (на MSA2010) он не работает, да и разбираться с этим ради картинки на ленте совершенно не хочется.
На мой взгляд, проще конвертировать картинку в нужный формат, чем городить столько кода, да еще и не известно - будет ли это работать на разных версиях (предполагаю, что не работает из-за разных видео подсистем, а не из-за версий MSA). Кстати, у многих описанный в книге код работает (см. http://stackoverflow.com/questions/5062021/use-png-as-custom-ribbon-icon-in-access-2007). | |
|
| |
|
|
|
| Ну и харашо что работает! | |
|
| |
|
|
|
| понятно , что не понятно.
особенно вот это вот
"RibbonXml Xml код где всё непонатно"
я всегда думал, что если чтото изменяется, то это в лучшую сторону как и в плане функциональности так и в плане удобства, но по всей видимости это не про microsoft | |
|
| |
|
|
|
| седня нарвался - прислали файл Ексель - у чела 2007-й (гореть ему в аду) - тыр-пыт у офиса истерика неверный формат, неподдерживаемая версия и проч лабуда на экране в конце концов касивые квадратики в 3-строчках.
слил себе офис ХР (да хранит его господь) - без проблем открылось - хохмы ради сохранил в другой файл, вернул - у того открылось, сохранил исходник - вернул (для эксперимента) - не ботл - таже истерика. вопрос о совместимости
на не моем компе резал диск. неро зависла при прожиге болванки - 7-ка "давайте поищем и перезагрузим, перезагрузим, подождем" - начинается перегружение нерки та при перезагрузке пытается диск юзать и виснет, и так по кругу, диск не вынимается (кнокой) т.к. его юзает нерка. диспетчером не снимает т.к. умное -"давайте перезагрузим". через 3 мин. удалось выдрать болванку из диска. долго клял Била.
так что гемор еще тот. | |
|
| |
|
|
|
| у меня аксс 2007 супер я доволен думаю про 2010 | |
|
| |
|
|
|
| по указанному адресу ddi
http://www.ribboncreator.de/en/index.php?Download
нашел программки, котрые помогают сделать свое меню. или покрайней мере набросать его , а потом подправить | |
|
| |
|