2013-10-27 2 views
0

Я пытаюсь отобразить растровое изображение на форме, но проблема в том, что я должен изменить его размер (заранее), чтобы он даже поместился. Это большая карта (например, фактическая карта ... географическая), поэтому, конечно, если я сделаю ее действительно маленькой, просто чтобы поместиться в форме, она не будет читаема. Итак, я решил, что мой единственный вариант - это, возможно, добавить какие-то функции прокрутки. Таким образом, я мог бы сохранить полный размер изображения и все еще содержать его в моей форме. Мне просто нужно использовать вертикальные и горизонтальные полосы прокрутки вокруг определенной области, в которой я мог бы перемещаться по всей карте. Имейте в виду, мне нужна какая-то комната в форме для кнопок, флажков и т. Д.Прокручиваемый битмап win32 Возможно?

Я искал некоторую информацию по этому вопросу, и я действительно не мог найти что-либо помимо кода CodeProject. Тем не менее, это было связано с VC++ и диалогами, и я использую C.

На данный момент единственное, о чем я могу думать, это сделать второе окно без границ (с горизонтальной и вертикальной прокруткой, включенной при создании), размер соответственно, и прикрепите его к моему основному окну. Затем я мог бы поместить битмап в полный размер второго окна, и он должен работать так, как я хочу. Возможно ли это? Есть ли у кого-нибудь предложения о том, что я должен делать?

ответ

1

Вместо полос прокрутки я бы, вероятно, использовал функции перетаскивания, как, например, почти все сейчас (т. Е. Пользователь щелкает где-то, перетаскивает, а карта перемещается туда, куда они ее перетаскивают).

Как проделать прокрутку: вы можете использовать ScrollWindow для перемещения существующей части карты, затем BitBlt, чтобы заполнить освобожденные области.

Смежные вопросы