25.08.2006, 11:49 | #1 |
Участник
|
Как правильно обновлять FormTableControl
А то заголовок не обновляется. Тест присоединен к этому сообщению.
При нажатии на кнопку данные меняются. А заголовки нет. Изменения в заголовках отображаюся только при скролле окна. Вот мои неудачные попытки отобразить изменения в заголовках: X++: // theTable.visible(false); // theTable.visible(true); #winapi Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,''); //WM_SETREDRAW Winapi::sendMessage(theTable.hWnd(), 0xB, 1,''); theTable.update(); theTable.updateCell(0,0); |
|
25.08.2006, 12:43 | #2 |
Участник
|
Поменяй
X++: Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,''); X++: Winapi::sendMessageEx(theTable.hWnd(), #WM_HSCROLL, #SB_RIGHT, 0); Winapi::sendMessageEx(theTable.hWnd(), #WM_HSCROLL, #SB_LEFT, 0);
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: belugin (6), GLUK (1). |
25.08.2006, 12:48 | #3 |
Гость
|
Цитата:
Сообщение от belugin
А то заголовок не обновляется. Тест присоединен к этому сообщению.
При нажатии на кнопку данные меняются. А заголовки нет. Изменения в заголовках отображаюся только при скролле окна. Вот мои неудачные попытки отобразить изменения в заголовках: X++: // theTable.visible(false); // theTable.visible(true); #winapi Winapi::sendMessage(theTable.hWnd(), #WM_HSCROLL, 0,''); //WM_SETREDRAW Winapi::sendMessage(theTable.hWnd(), 0xB, 1,''); theTable.update(); theTable.updateCell(0,0); Winapi::sendMessage(theTable.hWnd(), 71, 0,''); Что значит 71 не знаю, так как рядом нет Studio, а копаться в MSDN не охота может что -то из приведенного выше |
|
|
За это сообщение автора поблагодарили: belugin (6). |
25.08.2006, 12:52 | #4 |
Moderator
|
Помню, когда-то давно на 2.5 работал с Table`ами, для обновления использовал что-то типа:
Table.insertRows(1, 0); или Table.deleteRows(1, 0);
__________________
Андрей. |
|
|
За это сообщение автора поблагодарили: Maxim Gorbunov (6), belugin (6). |
25.08.2006, 12:52 | #5 |
Участник
|
а что такое 71 - (под руками нет windows.h)
|
|
25.08.2006, 13:01 | #6 |
Участник
|
WM_WINDOWPOSCHANGED (0x0047) - WinUser.h
Но у меня не обновляется
__________________
Axapta v.3.0 sp5 kr2 |
|
25.08.2006, 15:38 | #7 |
Участник
|
Можно еще так
X++: void HeaderLayout(FormTableControl tbl) { int header; int r = 0; Binary RECT = new Binary(16); Binary ptr = new Binary(4); #define.WM_LBUTTONDOWN(0x0201) #define.WM_LBUTTONUP(0x0202) #define.HDM_FIRST(0x1200) #define.HDM_GETITEMRECT(#HDM_FIRST + 7) #winapi ; header = winapi::getWindow(tbl.hWnd(), #GW_CHILD); if (header) { ptr.binary(0, RECT); if (winapi::sendMessageEx(header, #HDM_GETITEMRECT, 1, ptr.dWord(0)) > 0) { r = RECT.dWord(8); winapi::sendMessageEx(header, #WM_LBUTTONDOWN, 1, r); winapi::sendMessageEx(header, #WM_LBUTTONUP, 0, r); } } }
__________________
Axapta v.3.0 sp5 kr2 Последний раз редактировалось AndyD; 25.08.2006 в 15:46. |
|
|
За это сообщение автора поблагодарили: belugin (5). |
Теги |
axapta, formtablecontrol, table control |
|
|