本文整理汇总了C++中WindowInfo::RepaintAsync方法的典型用法代码示例。如果您正苦于以下问题:C++ WindowInfo::RepaintAsync方法的具体用法?C++ WindowInfo::RepaintAsync怎么用?C++ WindowInfo::RepaintAsync使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WindowInfo
的用法示例。
在下文中一共展示了WindowInfo::RepaintAsync方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ShowSearchResult
static void ShowSearchResult(WindowInfo& win, TextSel *result, bool addNavPt)
{
CrashIf(0 == result->len || !result->pages || !result->rects);
if (0 == result->len || !result->pages || !result->rects)
return;
if (addNavPt || !win.dm->PageShown(result->pages[0]) ||
(win.dm->ZoomVirtual() == ZOOM_FIT_PAGE || win.dm->ZoomVirtual() == ZOOM_FIT_CONTENT))
{
win.dm->GoToPage(result->pages[0], 0, addNavPt);
}
win.dm->textSelection->CopySelection(win.dm->textSearch);
UpdateTextSelection(&win, false);
win.dm->ShowResultRectToScreen(result);
win.RepaintAsync();
}
示例2: OpenFile
bool StressTest::OpenFile(const TCHAR *fileName)
{
bool reuse = rand() % 3 != 1;
_tprintf(_T("%s\n"), fileName);
fflush(stdout);
LoadArgs args(fileName, NULL, true /* show */, reuse);
WindowInfo *w = LoadDocument(args);
if (!w)
return false;
if (w == win) { // WindowInfo reused
if (!win->dm)
return false;
} else if (!w->dm) { // new WindowInfo
CloseWindow(w, false, true);
return false;
}
// transfer ownership of stressTest object to a new window and close the
// current one
assert(this == win->stressTest);
if (w != win) {
if (win->IsDocLoaded()) {
// try to provoke a crash in RenderCache cleanup code
ClientRect rect(win->hwndFrame);
rect.Inflate(rand() % 10, rand() % 10);
SendMessage(win->hwndFrame, WM_SIZE, 0, MAKELONG(rect.dx, rect.dy));
win->RenderPage(1);
win->RepaintAsync();
}
WindowInfo *toClose = win;
w->stressTest = win->stressTest;
win->stressTest = NULL;
win = w;
CloseWindow(toClose, false, false);
}
if (!win->dm)
return false;
win->dm->ChangeDisplayMode(DM_CONTINUOUS);
win->dm->ZoomTo(ZOOM_FIT_PAGE);
win->dm->GoToFirstPage();
if (win->tocVisible || gGlobalPrefs.favVisible)
SetSidebarVisibility(win, win->tocVisible, gGlobalPrefs.favVisible);
currPage = pageRanges.At(0).start;
win->dm->GoToPage(currPage, 0);
currPageRenderTime.Start();
++filesCount;
pageForSearchStart = (rand() % win->dm->PageCount()) + 1;
// search immediately in single page documents
if (1 == pageForSearchStart) {
// use text that is unlikely to be found, so that we search all pages
win::SetText(win->hwndFindBox, _T("!z_yt"));
FindTextOnThread(win);
}
int secs = SecsSinceSystemTime(stressStartTime);
ScopedMem<TCHAR> tm(FormatTime(secs));
ScopedMem<TCHAR> s(str::Format(_T("File %d: %s, time: %s"), filesCount, fileName, tm));
ShowNotification(win, s, false, false, NG_STRESS_TEST_SUMMARY);
return true;
}
示例3: OpenFile
bool StressTest::OpenFile(const WCHAR* fileName) {
wprintf(L"%s\n", fileName);
fflush(stdout);
LoadArgs args(fileName);
args.forceReuse = rand() % 3 != 1;
WindowInfo* w = LoadDocument(args);
if (!w)
return false;
if (w == win) { // WindowInfo reused
if (!win->IsDocLoaded())
return false;
} else if (!w->IsDocLoaded()) { // new WindowInfo
CloseWindow(w, false);
return false;
}
// transfer ownership of stressTest object to a new window and close the
// current one
AssertCrash(this == win->stressTest);
if (w != win) {
if (win->IsDocLoaded()) {
// try to provoke a crash in RenderCache cleanup code
ClientRect rect(win->hwndFrame);
rect.Inflate(rand() % 10, rand() % 10);
SendMessage(win->hwndFrame, WM_SIZE, 0, MAKELONG(rect.dx, rect.dy));
if (win->AsFixed())
win->cbHandler->RequestRendering(1);
win->RepaintAsync();
}
WindowInfo* toClose = win;
w->stressTest = win->stressTest;
win->stressTest = nullptr;
win = w;
CloseWindow(toClose, false);
}
if (!win->IsDocLoaded())
return false;
win->ctrl->SetDisplayMode(DM_CONTINUOUS);
win->ctrl->SetZoomVirtual(ZOOM_FIT_PAGE, nullptr);
win->ctrl->GoToFirstPage();
if (win->tocVisible || gGlobalPrefs->showFavorites)
SetSidebarVisibility(win, win->tocVisible, gGlobalPrefs->showFavorites);
currPage = pageRanges.at(0).start;
win->ctrl->GoToPage(currPage, false);
currPageRenderTime.Start();
++filesCount;
pageForSearchStart = (rand() % win->ctrl->PageCount()) + 1;
// search immediately in single page documents
if (1 == pageForSearchStart) {
// use text that is unlikely to be found, so that we search all pages
win::SetText(win->hwndFindBox, L"!z_yt");
FindTextOnThread(win, TextSearchDirection::Forward, true);
}
int secs = SecsSinceSystemTime(stressStartTime);
AutoFreeW tm(FormatTime(secs));
AutoFreeW s(str::Format(L"File %d: %s, time: %s", filesCount, fileName, tm));
win->ShowNotification(s, NOS_PERSIST, NG_STRESS_TEST_SUMMARY);
return true;
}