<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Thanks for the input guys.<div class=""><br class=""></div><div class="">Given what I had to work with, I was able to save a local hash of the context and widget and do a lookup from that.  However, It’s nice to know QWidget::find(wID) is well optimized.  I wonder what the performance is of the Windows function WindowFromDC?  Oh well, I don’t need to worry about it now.</div><div class=""><br class=""></div><div class="">Thanks again.</div><div class=""><br class=""></div><div class=""><div><blockquote type="cite" class=""><div class="">On Jan 7, 2015, at 6:31 PM, Thiago Macieira <<a href="mailto:thiago.macieira@intel.com" class="">thiago.macieira@intel.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">On Wednesday 07 January 2015 15:16:56 Jason Dolan wrote:<br class=""><blockquote type="cite" class="">I’m stuck with some 3rd party code where the input is a device context<br class="">(HDC), and I need to get the widget it’s associated with.<br class=""><br class="">My current implementation (completely untested as of yet) is:<br class="">QWidget *w = QWidget::find((WId)WindowFromDC(hDC));<br class=""><br class="">#1: I’m not even sure this will work (although I think it will) — I’m coding<br class="">under OS X right now and will have to test on our windows build machine in<br class="">a bit <br class="">#2: This needs to be as fast as possible as this can be called ALOT. <br class="">Any time the function says “find” I get worried about speed…<br class=""></blockquote><br class="">It's pretty quick:<br class=""><br class="">QWidget *QWidget::find(WId id)<br class="">{<br class="">    return QWidgetPrivate::mapper ? QWidgetPrivate::mapper->value(id, 0) : 0;<br class="">}<br class=""><br class="">And QWidgetPrivate::mapper is a QHash<WId, QWidget *>, so this should be O(1) <br class="">for the general case.<br class=""><br class="">-- <br class="">Thiago Macieira - thiago.macieira (AT) <a href="http://intel.com" class="">intel.com</a><br class="">  Software Architect - Intel Open Source Technology Center<br class=""><br class="">_______________________________________________<br class="">Interest mailing list<br class=""><a href="mailto:Interest@qt-project.org" class="">Interest@qt-project.org</a><br class="">http://lists.qt-project.org/mailman/listinfo/interest<br class=""></div></blockquote></div><br class=""><div class="">
<div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class=""><br class="Apple-interchange-newline">Jason Dolan</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class="">Software Developer</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class="">Physician's Computer Company</div><div style="color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; orphans: 2; widows: 2;" class="">20 Winooski Way, Suite #7, Winooski, VT 05404</div>
</div>
<br class=""></div></body></html>